2016-06-27 10 views
-1

Da ich meine OSX-Installation gelöscht und neu gestartet habe, funktioniert diese Bash-Funktion nicht mehr. Ich kann deutlich sehen, dass es .ORIG- und .PYC-Dateien in dem Ordner gibt, in dem ich es ausführe, aber es sagt mir nur, dass es nichts finden kann. Ich vergesse genau, wie diese Funktion funktioniert. Kann mir jemand helfen zu verstehen, was los ist? Vielen Dank!Broken Bash-Funktion

studyClean() { 
echo "------------Cleaning...------------" 
numCleaned=$(find . -type f -name ".pyc" -print -exec rm -v {} + | wc -l;) 
echo "${numCleaned} .pyc files cleaned!" 
numCleaned=$(find . -type f -name ".orig" -print -exec rm -v {} + | wc -l;) 
echo "${numCleaned} .orig files cleaned!" 
} 

Terminal-Ausgang, wenn genannt:

| ~/apps/funapp @ Simons-Air (simonbraunstein) 
| => studyClean 
------------Cleaning------------ 
     0 .pyc files cleaned! 
     0 .orig files cleaned! 
___________________________________________________ 
+1

chepners Antwort erklärt unten, was falsch ist. Aber Ihr Befehl ist seltsam: Da Sie sowohl die Option "-print" als auch die Option "rm" verwenden, ist die Anzahl, die Sie erhalten, (mindestens) doppelt so groß wie die Anzahl der tatsächlich entfernten Dateien! –

+0

@gniourf_gniourf Danke! Ich habs. Werde untersuchen! Mann, ich dachte, diese Funktion würde viel mehr aufräumen als sie war! – Catlard

+0

Es kann für Ihren Fall in Ordnung sein, aber selbst wenn Sie den "-Print" ablegen, ist die Anzahl der Zeilen der Ausgabe * mindestens * so viel wie die Anzahl der entfernten Dateien: Wenn die Ausgabe 'foo \ nbar' ist, waren das zwei dateien 'foo' und' bar', oder eine einzelne datei mit einem eingebetteten newline? – chepner

Antwort

3

Es ist nicht klar, warum die Funktion in erster Linie gearbeitet. Die Argumente zu -name sollten nur Dateien mit den genauen Namen .pyc und .orig übereinstimmen. Verwenden Sie stattdessen -name "*.pyc" und -name "*.orig".

+0

Ah ja. Ich glaube, dass das Kopieren und Einfügen in und von trello dazu führte, dass die Platzhalterzeichen verschwanden. Übersehen, dass! Vielen Dank. – Catlard

Verwandte Themen