我有大量文件夹,每个文件夹包含多个子文件夹。类似这样的
/mnt/data1/Folder1/subjfolder1, /mnt/data/Folder1/subjfolder2, /mnt/data/Folder1/subjfolder3
/mnt/data1/Folder2/subjfolder1, /mnt/data/Folder2/subjfolder2, /mnt/data/Folder2/subjfolder3
...
我喜欢复制 Folder1、Folder2 等,但只将每个文件夹中的 subjfolder2 复制到新位置,例如 data2。如下所示:
/mnt/data2/Folder1/subjfolder2
/mnt/data2/Folder2/subjfolder2
...
我不想复制 Folder1、2 等的全部内容,只想复制每个文件夹中的 subjfolder2。希望这很清楚。有人能帮忙吗?
答案1
这种事情可以通过简单的 shell glob 来完成:
cp -rt path/to/destination/ /mnt/data2/Folder?/subjfolder2
(匹配后面Folder
跟着任意单个字符的名称)
cp -rt path/to/destination/ /mnt/data2/Folder[0-9]/subjfolder2
(匹配名称中Folder
后跟任意单个十进制数字)
cp -rt path/to/destination/ /mnt/data2/Folder*/subjfolder2
(匹配后面Folder
跟着任意字符串的名称)。
或者,要匹配一组特定的文件夹,您可以使用括号扩展
cp -rt path/to/destination/ /mnt/data2/Folder{1..17}/subjfolder2