gpt4 book ai didi

file - 复制包含在不同父文件夹中的许多文件(同名)

转载 作者:行者123 更新时间:2023-11-29 09:02:39 27 4
gpt4 key购买 nike

我有一个关于 unix 命令行的问题。我有很多这样的文件:

/f/f1/file.txt

/f/f2/file.txt

/f/f3/file.txt

and so on.

我想将所有 file.txt 及其 father folder 复制到另一个 folder g 中,例如:

/g/f1/file.txt

/g/f2/file.txt

/g/f3/file.txt

我无法复制 folder f 的所有内容,因为在每个 sub-folder f1, f2, ... 中我还有许多其他文件我没有想要复制。

我如何使用命令行执行此操作?最终使用 bash 脚本?

最佳答案

cp 的手册显示了这个选项 -

--parents
use full source file name under DIRECTORY

因此,如果您使用的是 bash v4,您可以这样做 -

[jaypal:~/Temp/f] tree
.
├── f1
│   ├── file.txt # copy this file only with parent directory f1
│   ├── file1.txt
│   └── file2.txt
└── f2
├── file.txt # copy this file only with parent directory f2
├── file1.txt
└── file2.txt

2 directories, 6 files
[jaypal:~/Temp/f] mkdir ../g
[jaypal:~/Temp/f] shopt -s globstar
[jaypal:~/Temp/f] for file in ./**/file.txt; do cp --parents "$file" ../g ; done
[jaypal:~/Temp/f] tree ../g
../g
├── f1
│   └── file.txt
└── f2
└── file.txt

2 directories, 2 files

关于file - 复制包含在不同父文件夹中的许多文件(同名),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9021931/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com