dir1
私はという名前の約800のサブディレクトリを含むというディレクトリを持っていますdisp-001, disp-002, ... disp-800
。stdout
与えられた解決策に従ってファイルが含まれていないサブディレクトリのリストを取得しています。ここ〜のように
$ find . -type d \! -exec test -e '{}/stdout' \; -print
これで、ファイルが含まれていないサブディレクトリを別のディレクトリdir2にコピーしようとしています。私はこれを達成するためにxargsを使用します
$ find . -type d \! -exec test -e '{}/stdout' \; -print |xargs -I cp -r {} ../dir2
ただし、これによりエラーが発生します。xargs: {}: No such file or directory
このサブディレクトリを別のディレクトリにコピーする方法
答え1
必要ありませんxargs
。find
処理できます。
find . -mindepth 1 -type d \! -exec test -e '{}/stdout' \; -exec echo cp -r '{}' ../dir2 \;
または同様の作業を行うfind
最新バージョンを使用してください(またはひどく800のフォーク!)。\+
find
xargs
-mindepth 1
このフォルダを除外する必要があります./
。それ以外の場合は、すべてのサブディレクトリがコピーされます。- このコマンドには、コピーを実行する前にどのプロセスが実行されているかを確認する
-exec
デバッグオプションが含まれています。echo