Ich versuche zu laufen (Unix-Shell, Win7):
find . -maxdepth 1 -name "*.jpg" -size -50k -delete
und erhalte den Fehler:
find: invalid predicate '-delete'
irgendwelche Hinweise?
Möglicherweise sind die xargs auch hilfreich, nicht nur bei Such- und Löschvorgängen, sondern auch bei anderen Vorgängen, bei denen Sie nach dem Ausführen eines Befehls möglicherweise Text verarbeiten möchten. In diesem Fall,
find . -maxdepth 1 -name "*.jpg" -size -50k | xargs rm -f
Überprüfen Sie Ihre Arbeit immer zuerst mit einem "Echo" vor xargs (damit Sie sehen können, wie die Befehle aussehen, bevor Sie sie ausführen). Welches würde so aussehen:
find . -maxdepth 1 -name "*.jpg" -size -50k | xargs echo rm -f
echo
nicht die Dateien, die von gefunden wurdenfind
. Es ignoriert die Eingabe und gibt die Literalzeichenfolge 'xargs rm -f' wieder.IFS=$'\t\n'
hat bei mir nicht funktioniert .. Und würde es einen Befehl geben, der die Dateien in den Papierkorb legt, anstatt sie dauerhaft zu löschen?find . | xargs -i rm -f "{}"
Also -i sagt "Ich werde das Argument positionieren" und das {} sagt "Hier möchte ich es positionieren". Dann das Zitat, das deiner Muschel sagt: "Hey Mann, in diesem Ding steckt Müll. Nimm einfach das Zeug in die Anführungszeichen."echo
am falschen Ort. Ich habe es verschoben, es sollte jetzt so funktionieren, wie ich es gemeint habe.find . | xargs -i mv "{}" /tmp/
Der Version von
find
gefunden aus der Unix-Shell, die Sie ausführen (aus Windows), fehlt das-delete
Prädikat.Eine mögliche Alternative ist:
quelle