
Ich möchte die Ergebnisse aus diesem Befehl übernehmen:
find . -type f -size +200M -exec ls -lh {} \;
Speichern Sie den Inhalt in einer Variablen irgendeiner Art und löschen Sie dann die gefundenen Dateien.
Wie kann ich das machen?
Antwort1
Sie müssen die Ergebnisse nicht nur in der Variablen speichern, find
um die Dateien entfernen zu können (es sei denn, Sie haben spezielle Anforderungen, die Sie nicht erwähnt haben), da find
spezielle -delete
Parameter bereitgestellt werden, die das für Sie erledigen:
find . -type f -size +200M -print -delete
AlsDas Parsen der ls
Befehlsausgabe wird nicht empfohlen.
Wenn Sie die von zurückgegebenen Dateien wirklich analysieren möchten find
, müssen Sie etwa Folgendes tun:
find . -type f -size +200M -print0 | xargs -0 rm -v
Da Sie keine Shell-Variablen mit Nullzeichen behalten können und Sie das Skript nicht bei Leerzeichen unterbrechen möchten (was dazu führen kann,Riesenwanzen), könnte der Workaround darin bestehen, die Liste in der temporären Datei zu speichern oder die Daten zu serialisieren (z. B. base64
).