Załóżmy, że chcę usunąć wszystkie pliki w folderze, które są większe niż 1 MB.
$ find . -size +1M | xargs -0 rm
Nie spowoduje to usunięcia plików, które mają spacje w swoich nazwach. Chcę, żeby zacytował wszystkie argumenty, do których wysyła rm
. Jeśli find
daje to Some report.docx
powinien on przejść "Some report.docx"
do rm
.
Jak mogę to zrobić?
xargs -d$'\n'
aby ograniczyć ogranicznik tylko do nowych wierszy (a nie spacji; nie przetwarzałoby to specjalnie cudzysłowów itp. - Sprawdziłem w systemie GNU) - odpowiedź podana w stackoverflow.com/a/33528111/94687
xargs
. Również, jak sugeruje wiki, nie używajxargs
bez przekazania-print0
dofind
.