如何使用 Linux 将数据从子目录复制到上一级

如何使用 Linux 将数据从子目录复制到上一级

我有如下的目录和文件结构。

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:将结果仅限于目录。

相关内容