在目录中~/temp/a/foo/,~/temp/b/foo foo/我有一些名为bar1, bar2, bar bar1,bar bar2等的文件。
我正在尝试编写一行 Bash,将包含“foo”作为名称最后一部分的目录中的所有这些文件复制到相应“foo”文件夹上方的文件夹中。
只要文件名中没有空格,这很容易,但是在处理foo foo目录时,以下两个命令会失败:
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理解?