加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 22:44:54 所属栏目:安全 来源:网络整理
导读:大家好我对unix命令行有疑问.我有很多这样的文件: /f/f1/file.txt/f/f2/file.txt/f/f3/file.txtand so on... 我想将所有file.txt与其父文件夹一起复制到另一个文件夹中,例如: /g/f1/file.txt/g/f2/file.txt/g/f3/file.txt 我无法复制文件夹f的所有内容,因
大家好我对unix命令行有疑问.我有很多这样的文件:

/f/f1/file.txt

/f/f2/file.txt

/f/f3/file.txt

and so on...

我想将所有file.txt与其父文件夹一起复制到另一个文件夹中,例如:

/g/f1/file.txt

/g/f2/file.txt

/g/f3/file.txt

我无法复制文件夹f的所有内容,因为在每个子文件夹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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读