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?
IFS='\n' rm `ls the*`
,?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 iturm: cannot remove ‘the file\nthe file2\nthe file3’: No such file or directory
find /path/to/dir -name *.avi -delete {} \;
. Itu terlihat seperti solusi untuk tujuan Anda, tetapi tidak satu untuk pertanyaan yang diajukan di OP.Jawaban:
Coba yang ini:
Input akan dibagi pada baris baru, sehingga file dengan baris baru pada namanya tidak akan berfungsi. Mengutip nama dengan spasi berfungsi tanpa masalah.
sumber
for
.cut -d ' '
benar.