Ich verwende Linux und beabsichtige, einige Dateien mit der Shell zu entfernen.
Ich habe einige Dateien in meinem Ordner, einige Dateinamen enthalten das Wort "gut", andere nicht. Zum Beispiel:
%Vor%Ich möchte die Dateien entfernen, die NICHT "gut" im Namen enthalten, also sind die verbleibenden Dateien:
%Vor% Wie geht das mit rm
in der Shell? Ich versuche,
aber es funktioniert nicht.
Vielen Dank!
Mit bash können Sie eine "negative" Übereinstimmung erhalten co_de% Shell-Option:
%Vor% Sie können find
mit dem Operator -not
verwenden:
Ich habe -exec
verwendet, um rm
dort aufzurufen, aber Ich frage mich, ob es tut, siehe unten . find
eine eingebaute Löschaktion hat
Aber sehr vorsichtig damit. Beachten Sie, dass ich oben eine -a -not -name "."
-Klausel einfügen musste, weil sonst .
, das aktuelle Verzeichnis, übereinstimmte. Also würde ich gründlich mit -print
testen, bevor ich das -exec rm {} \;
-Bit einfüge!
Update : Yup, ich habe es noch nie benutzt, aber es gibt tatsächlich eine -delete
Aktion. Also:
Seien Sie wieder vorsichtig und überprüfen Sie, ob Sie nicht mehr übereinstimmen, als Sie zuerst abgleichen möchten.