Bunun gibi pipolu bir komutum var:
$ ls -t|tail -n 10
Şimdi, yukarıdaki komut tarafından üretilen tüm dosyaları kaldırmak istersem, dosyalar boşsa, çalışmaz:
$ 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
Dosya adlarını rm'ye göndermeden önce nasıl alıntı yapabilirim?
IFS'yi boşluktan başka bir şeye ayarlamak istersiniz.
—
Hennes
@Hennes,
—
TheOne
IFS='\n' rm `ls the*` ?
Işe yarayabilir. IFS 'Dahili Dosya Ayırıcı' dır. Varsayılan olarak bir boşluğa. Herhangi bir karaktere ayarlayabilirsiniz. Newline ('\ n') ve null (IFS = $ '\ 0') en sık kullanılan seçeneklerdir. (Sıklıkla birlikte
—
Hennes
find -print0. - Ancak en iyi seçenek ne yapmaya çalıştığınıza bağlıdır ve "ls | cut -d '' -f 3 | sort | etc ..." örneğiniz yorum yapmam için belirsizdir bu konuda.
$ IFS = '\ n' 'rm *' nin bana verdiği şey:
—
TheOne
rm: cannot remove ‘the file\nthe file2\nthe file3’: No such file or directory
Sadece silme için böyle bir şey kullanır:
—
Hennes
find /path/to/dir -name *.avi -delete {} \;. Bu amacınıza bir çözüm gibi gözüküyor, ancak OP'de sorulan soruya değil.