1. adımda, izleyerek çözdüğüm dizin ağacındaki en eski dosyayı bulmaya çalışıyorum. bu soru .
Şimdi kullanmak istiyorum xargs
etkileşimli olarak en eskiden en yeniye silme.
Bundan beri find -type f -printf '%T+ %p\n' | sort | xargs -0 -d '\n' rm -i
çalışmıyor. Başka bir yazı gördüm find . -type f -print0 | xargs -0 ls -rt
ama ekleyerek xargs
Ne yazık ki işe yaramıyor.
pi@raspberrypi:/usr/share/doc/samba$ find . -type f -print0 | xargs -0 ls -rt | xargs -0 -d '\n' rm -i
rm: remove write-protected regular file ‘./examples/LDAP/samba.schema.oc.IBM-DS’? rm: remove write-protected regular file ‘./examples/LDAP/samba-schema-netscapeds5.x.README’? rm: remove write-protected regular file ‘./examples/LDAP/samba-schema.IBMSecureWay’? rm: remove write-protected regular file ‘./examples/LDAP/samba.schema.gz’? rm: remove write-protected regular file ‘./examples/LDAP/samba-schema-FDS.ldif.gz’? rm: remove write-protected regular file ‘./examples/LDAP/samba.schema.at.IBM-DS.gz’? rm: remove write-protected regular file ‘./examples/LDAP/samba-nds.schema.gz’? rm: remove write-protected regular file ‘./examples/LDAP/samba.ldif.gz’? rm: remove write-protected regular file ‘./examples/LDAP/ol-schema-migrate.pl.gz’? rm: remove write-protected regular file ‘./examples/LDAP/get_next_oid’? rm: remove write-protected regular file ‘./README.Debian’? rm: remove write-protected regular file ‘./TODO.Debian’? rm: remove write-protected regular file ‘./NEWS.Debian.gz’? rm: remove write-protected regular file ‘./copyright’? rm: remove write-protected regular file ‘./changelog.Debian.gz’? rm: remove write-protected regular file ‘./examples/LDAP/README’?
Lütfen bunun bir izin sorunu olmadığını unutmayın. Kullandım /usr/share/doc/samba
gerçek dosya adlarımı yayınlamaktan kaçınmak için bir örnek.
Web'de arama yaparken, özyinelemeli (ağacın tamamı), boş dosya karakterlerini işleyen ve etkileşimli herhangi bir komut dosyası bulamadım. Bu yüzden bunu yaptım. Bu, her tür özel karakteri işlemez. Yani herhangi bir gelişme kabul edilirdi.
#!/bin/bash
find -type f -printf '%T+ %p\n' | sort | head -n 3 > /tmp/1
cut -c32- /tmp/1 | awk '{print "rm -i", "\""$_"\""}'/tmp/2
bash /tmp/2