Itu ide yang buruk (memiliki karakter aneh dalam nama file) tetapi Anda bisa melakukannya
mv somefile.txt "foo
bar"
(Anda bisa juga melakukan mv somefile.txt "$(printf "foo\nbar")"
atau mv somefile.txt foo$'\n'bar
, dll ... detail khusus untuk shell Anda. Saya menggunakan zsh
)
Baca lebih lanjut tentang globbing , misalnya glob (7) . Detailnya bisa spesifik untuk shell. Tapi pahami yang /bin/mv
diberikan (oleh shell Anda), melalui execve (2) , array argumen yang diperluas : ekspansi argumen dan globbing adalah tanggung jawab shell yang memanggil.
Dan Anda bahkan bisa membuat kode program C kecil untuk melakukan hal yang sama:
#include <stdio.h>
#include <stdlib.h>
int main() {
if (rename ("somefile.txt", "foo\nbar")) {
perror("rename somefile.txt");
exit(EXIT_FAILURE);
};
return 0;
}
Simpan program di atas foo.c
, kompilasi dengan gcc -Wall foo.c -o foo
kemudian jalankan./foo
Demikian juga, Anda dapat membuat kode skrip yang serupa di Perl, Ruby, Python, Ocaml, dll ....
Tapi itu ide yang buruk. Hindari baris baru dalam nama file (itu akan membingungkan pengguna, dan itu bisa merusak banyak skrip).
Sebenarnya, saya bahkan merekomendasikan untuk menggunakan hanya huruf, angka, dan +-/._%
karakter yang tidak ditekankan (dengan /
menjadi pemisah direktori) dalam jalur file. File "tersembunyi" (dimulai dengan .
) harus digunakan dengan hati-hati dan parcimony. Saya percaya menggunakan segala jenis ruang dalam nama file adalah kesalahan. Gunakan garis bawah sebagai gantinya (misalnya foo/bar_bee1.txt
) atau minus (misalnya foo/bar-bee1.txt
)