Katakanlah saya punya perintah pipa seperti ini:
$ ls -t|tail -n 10
Sekarang jika saya ingin menghapus semua file yang dihasilkan oleh perintah di atas, jika file memiliki spasi, itu tidak akan berfungsi:
$ rm `ls -t|tail -n 10`
# assuming the first response is 'The File Name', I get:
rm: cannot remove ‘The’: No such file or directory
rm: cannot remove ‘File’: No such file or directory
rm: cannot remove ‘Name’: No such file or directory
Bagaimana saya bisa mengutip nama file sebelum mengirimnya ke rm?
Anda ingin mengatur IFS ke sesuatu yang lain daripada spasi.
—
Hennes
@ Henry
—
TheOne
IFS='\n' rm `ls the*` ,?
Itu bisa berhasil. IFS adalah 'Pemisah File Internal'. Defaultnya adalah spasi. Anda dapat mengaturnya ke karakter apa saja. Baris baru ('\ n') dan null (IFS = $ '\ 0') adalah opsi yang paling sering digunakan. (Seringkali dikombinasikan dengan
—
Hennes
find -print0. - Namun pilihan terbaik tergantung pada apa yang Anda coba lakukan, dan contoh Anda "ls | cut -d '' -f 3 | sort | etc ..." adalah tidak jelas bagi saya untuk berkomentar tentang itu
$ IFS = '\ n' 'rm apakah *' memberi saya:
—
TheOne
rm: cannot remove ‘the file\nthe file2\nthe file3’: No such file or directory
Untuk hanya menghapus saya akan menggunakan sesuatu seperti ini:
—
Hennes
find /path/to/dir -name *.avi -delete {} \;. Itu terlihat seperti solusi untuk tujuan Anda, tetapi tidak satu untuk pertanyaan yang diajukan di OP.