2017-09-03 9 views
0

誰かが再帰的にフォルダのプレースホルダを拡大するために私にこれを与えた進捗状況を示しています。再帰ファイルと

exec 7>&1 
output="go" 
while [ "$output" ]; do 
    output=$(find . -name "*.cloudf" -print0 | xargs -0 -n 1 python odrive.py sync | tee /dev/fd/7) 
done 

.cloudfodriveプレースホルダファイルです。syncコマンドは、フォルダにそれらを展開し、これらの新しいフォルダは、より多くを含んでいます.cloudfプレースホルダを展開する必要があります)

問題は、それを数回実行した後、進行状況の表示を停止することです。

exec 6>&1と​​は、進行状況を示すための何らかのトリックだと思われますが、1〜2回しか動作しない場合、動作を停止します。

67と他の数字に変更しようとしましたが、それは役に立ちませんでした。

+0

私はあなたのコマンドラインの残りの部分または何「odriveのことは知りません"または' .cloudf'ファイルが対象かもしれませんが、 'exec 7>&1'でリダイレクションを開くと、' exec 7>& - 'で終了したときにそれを閉じるように怒鳴ります。 – ghoti

+0

ありがとう、私はそれを試みた;まだ印刷が進行していません... –

答えて

0

これは、(いくつかの余分な空白行とはいえ)動作します(thisthisの助けを借りて)

while [[ -n $(find . -name '*.cloudf') ]]; do 
    find . -name "*.cloudf" -print0 | xargs -0 -n 1 -P $p python odrive.py sync; 
done 

+0

これは 'tee'を介して欠落した出力の問題にどのように対処するのか分かりません。それは空想的なリダイレクトを使用しない。しかし、とにかく..もしあなたがこれであなたの問題を解決したならば、質問を「閉じる」ために答えを正しいものとしてマークしてください。 – ghoti