我有如下的目录和文件结构。
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
:将结果仅限于目录。