Ich möchte ein Verzeichnis (und Unterverzeichnisse) von jedem Vorkommen der .py
und .pyc
-Dateien bereinigen . Ich habe folgendes versucht
find . -name '*pyc' -o -name '*py~' -exec rm -f {} \;
das ließ alle pyc
Dateien aus. Wenn Sie das tun
find . -name '*pyc' -o -name '*py~'
Der Befehl findet die pyc
Dateien, die überhaupt nicht gelöscht werden. Irgendwelche Einsichten?
Der
-a
Operator (implizit zwischen zwei Prädikaten) hat Vorrang vor-o
, daher benötigen Sie Klammern:(Ich füge das
-a
Obige nur zu Demonstrationszwecken hinzu, es wird nicht benötigt, da es implizit ist). Ich ersetzte;
mit+
so gibt es wahrscheinlich keinen Sinn , läuft manrm
pro Datei , wenn diese vermieden werden können.quelle
-delete
keine Standardoption ist. Verwenden Siefind
es auf jeden Fall, wenn Sie es unterstützen, aber verwenden Sie es nicht in Skripten, die portabel sein sollen.find
ist Perl sehr ähnlich. Erstaunlich mächtig, aber nur zum Schreiben.Wenn Sie Bash 4+ haben, müssen Sie nicht einmal finden, da Globstar Ihnen rekursives Globbing ermöglicht:
Beachten Sie, dass
shopt
dies in einer eigenen Zeile stehen muss und nicht durch ein getrennt werden muss;
(und ganz oben in einem Skript verwendet werden sollte, wenn möglich direkt unter dem Shebang).quelle
Ich weiß, dass die Frage nicht so neu ist ... aber vielleicht hat sie gereicht
quelle