ファイルが見つからない理由の1つは、指定したファイル名が間違っている可能性があります。あなたのファイルは本当にで始まり、のスペースで始まり、という文字で始まりますか?
アイテム数をカウントするのに理由がありますか? find
の基準に一致するファイルが存在しないと、$(check) -gt 1
になりますか?その場合、チェックを外すことができます。一致するファイルが見つからない場合は、find
は何も行いません。
#!/bin/bash
src="/home/admin/Lulu/Bo/"
find "$src/" \
-type f
-name "oAS1_201613*.tar.gz" \
-not -name "*bak*" \
-print0 |
xargs -0 -t -I {} mv "{}" /RS/2011/
は、あなたが自分の名前に空白文字を含むファイルを処理できるように-print0
とxargs -0
を、注意してください。
mv
をfind
のオプションとして実行することもできます。代わりに-print0
の、あなたがこれを使用する可能性があります:
find "$src/" ... -exec mv -v "{}" /RS/2011/ \;
をあなたが本当にxargs -t
の機能をエミュレートしたい場合は、行うことができ、複数の経由-exec
コマンドという。
xargs
を使用するメリットの1つは、時には-P
オプションです。これにより、物事を並行して実行できます。一見すると、100万個のファイルを移動する "大きな"仕事が候補になると思われますが、とにかくIOバインドされる可能性が高いので、mvを並行して実行するとそれほど役に立ちませんこの場合、find .. -exec
は、xargs
へのパイプと同じように機能します。
Linuxにはフォルダはなく、ディレクトリのみがあります。 –
*スクリプトが** 20以上のレコードであるかどうかをチェックする** - 現在のコードが** 1より大きいかどうかをチェック**レコード – RomanPerekhrest