Aslında Borulama rm
'ın çıkışını girişine find
. İstediğin çıktısını kullanmaktır find
olarak argümanlar için rm
:
find -type f -name '*.sql' -mtime +15 | xargs rm
xargs
standart girdisini başka bir programın argümanlarına "dönüştüren" veya man
sayfaya daha doğru bir şekilde koydukları için ,
standart girdiden komut satırları oluşturma ve yürütme
Dosya adları boşluk karakterleri içeriyorsa, bunu düzeltmeniz gerektiğini unutmayın:
find -type f -name '*.sql' -mtime +15 -print0 | xargs -0 rm
Ama aslında, find
bunun için bir kısayol var: -delete
seçenek:
find -type f -name '*.sql' -mtime +15 -delete
Lütfen aşağıdaki uyarılara dikkat edin man find
:
Warnings: Don't forget that the find command line is evaluated
as an expression, so putting -delete first will make find try to
delete everything below the starting points you specified. When
testing a find command line that you later intend to use with
-delete, you should explicitly specify -depth in order to avoid
later surprises. Because -delete implies -depth, you cannot
usefully use -prune and -delete together.
Not: Doğrudan girişin rm
bir seçenek olmadığını unutmayın , çünkü rm
standart girişte dosya adları beklemez. Şu anda yaptığınız şey onları geriye doğru pipetlemek.