เป็นความคิดที่ดี (มีตัวอักษรแปลก ๆ ในชื่อไฟล์) แต่คุณสามารถทำได้
mv somefile.txt "foo
bar"
(คุณสามารถทำได้mv somefile.txt "$(printf "foo\nbar")"
หรือmv somefile.txt foo$'\n'bar
อื่น ๆ ... รายละเอียดเฉพาะกับเชลล์ของคุณฉันใช้zsh
)
อ่านเพิ่มเติมเกี่ยวกับglobbingเช่นglob (7) รายละเอียดอาจเป็นแบบเฉพาะเชลล์ แต่เข้าใจว่า/bin/mv
ได้รับ (โดยเชลล์ของคุณ), ผ่านexecve (2) , อาเรย์ที่ขยายตัวของข้อโต้แย้ง: การขยายข้อโต้แย้งและกลมกลืนเป็นความรับผิดชอบของเชลล์ที่กล่าวอ้าง
และคุณสามารถรหัสโปรแกรม C ขนาดเล็กเพื่อทำสิ่งเดียวกัน:
#include <stdio.h>
#include <stdlib.h>
int main() {
if (rename ("somefile.txt", "foo\nbar")) {
perror("rename somefile.txt");
exit(EXIT_FAILURE);
};
return 0;
}
บันทึกโปรแกรมข้างต้นในfoo.c
คอมไพล์gcc -Wall foo.c -o foo
แล้วรัน./foo
ในทำนองเดียวกันคุณสามารถเขียนโค้ดสคริปต์ที่คล้ายกันใน Perl, Ruby, Python, Ocaml, ฯลฯ ....
แต่นั่นเป็นความคิดที่ไม่ดี หลีกเลี่ยงการขึ้นบรรทัดใหม่ในชื่อไฟล์ (จะทำให้ผู้ใช้สับสนและอาจทำให้สคริปต์แตกต่างกัน)
ที่จริงแล้วฉันยังแนะนำให้ใช้เฉพาะตัวอักษรตัวเลขและ+-/._%
อักขระที่ไม่เน้นเสียง(โดย/
เป็นตัวคั่นไดเรกทอรี) ในเส้นทางของไฟล์ .
ควรใช้ไฟล์ "ซ่อน" (เริ่มต้นด้วย) ด้วยความระมัดระวังและ parcimony ฉันเชื่อว่าการใช้พื้นที่ใด ๆ ในชื่อไฟล์เป็นความผิดพลาด ใช้ขีดล่างแทน (เช่นfoo/bar_bee1.txt
) หรือลบ (เช่นfoo/bar-bee1.txt
)