ディレクトリ~/temp/a/foo/には、、、、などの名前の~/temp/b/foo foo/ファイルがいくつかあります。bar1bar2bar bar1bar bar2
名前の最後の部分として「foo」を含むディレクトリ内のこれらすべてのファイルを、それぞれの「foo」フォルダーの上のフォルダーにコピーする Bash の行を書き込もうとしています。
ファイル名にスペースが含まれていない限り、これは簡単な作業ですが、foo fooディレクトリを処理するときに次の 2 つのコマンドが失敗します。
for dir in `find . -type d -name '*foo'` ; do cp $dir/* "$(echo $dir|sed 's_foo__g')" ; done
(cpコマンドは、最後fooの を"foo foo"同じディレクトリ名の一部として認識できません。)
for dir in `find . -type d -name '*foo'` ; do cp "$dir/*" "$(echo $dir|sed 's_foo__g')" ; done
("$dir/*"展開されていません。)
で置き換えるなどの試みは、さらに成功していません$dir/*。"$(echo $dir/*)"
理解できる$dir/*ように展開する簡単な方法はありますか?cp