
次のディレクトリとファイル構造があります。
path/A/1/a/11.txt
path/A/1/a/12.txt
path/A/2/a/21.txt
path/A/3/a/31.txt
このファイルをあるレベルより高い別のパスにコピーしたいと思います。新しいパスでは、サブディレクトリ「a」は使用できません。
path2/A/1/11.txt
path2/A/1/12.txt
path2/A/2/21.txt
path2/A/3/31.txt
複数のディレクトリがあり、その中に複数のファイルがあるため、以下のコマンドは単に使用できません。
cp -R path/A/1/a/*.txt path2/A/1/
入力を探します。ありがとう
答え1
ループを使いましょう。
from=some/path
to=some/other/path2
for dir in "$from"/A/*/; do
dest=${dir/#$from/$to}
mkdir -p "$dest"
cp -v "$dir"/*/*.txt "$dest"
done
コマンドパターンの末尾のスラッシュを参照してくださいfor
。結果をディレクトリに限定してください。