3

Linux の問題があり、助けてほしい...

ディレクトリを作成するアプリケーションがあります。これらのディレクトリを見て、ディレクトリが特定の文字列で始まるかどうかを確認するスクリプトを書きたいと思います。そうでない場合は、そのままにしておいてから移動します...

したがって、論理的な立場から:

ディレクトリ名が「ABC」で始まる場合は、他に何
もしないでフォルダーを共有ドライブに
移動します。

このスクリプトは cron.hourly フォルダーに移動するため、自動的に実行されます。

どんな助けでも大歓迎です!!!

4

2 に答える 2

2
find . -mindepth 1 -maxdepth 1 -type d ! -name 'ABC*' -exec mv -i {} ./dest \;

移動したくないディレクトリの単純なパターンを特定できる場合は、bash の extglob 設定を使用することもできます。

shopt -s extglob
mv !(ABC)*/ ./dest/
于 2013-01-09T13:58:56.420 に答える
0

このような単純なパターンの場合はfind

find * -type d ! -name "ABC*" | while read f; do mv $f /tmp/test2; done

このようなものを使用することもできますが、 find が再帰を行う方法が原因で問題が発生する可能性があります。

find * -type d ! -name "ABC*" -exec mv {} /tmp/test2 \;

したがって、代わりにディレクトリのリストをファイルに出力してから移動することができます。

于 2013-01-09T13:44:24.873 に答える