2016-06-27 10 views
-1

OSXのインストールを一掃してリブートしたので、このbash関数は動作しなくなりました。私はそれが実行しているフォルダに.origファイルと.pycファイルがあることをはっきりと見ることができますが、何も見つからないと私に伝えます。私はこの機能がどのように機能するか正確に忘れています誰かが私が間違っていることを理解するのを助けることができる?ありがとう!壊れたbash関数

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!" 
} 

ターミナル出力呼ばれたとき:

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

下記のchepnerの答えが間違っていることを説明しています。しかし、あなたのコマンドは奇妙です: '-print'と' rm'の '-v'オプションを使用しているので、実際に削除されるファイルの数の2倍以上になります! –

+0

@gniourf_gniourfありがとう!とった。調査します!私は、この機能がそれよりもはるかにクリーンアップしていると思いました! – Catlard

+0

あなたの場合はOKかもしれませんが、 '-print'を削除しても、出力行の数は少なくとも削除されたファイルの数になります。出力が' foo \ nbar'の場合、 'foo'と' bar'という名前の2つのファイル、または改行が埋め込まれた単一のファイルでしたか? – chepner

答えて

3

機能が最初の場所で働いていた理由は明らかではありません。 -nameの引数は、正確な名前が.pycおよび.origのファイルと一致する必要があります。代わりに、-name "*.pyc"-name "*.orig"を使用してください。

+0

ああ、そうです。 trelloとの間でコピーや貼り付けをすると、ワイルドカード文字が消えてしまいます。それを見落とした!ありがとう。 – Catlard

関連する問題