将子文件夹复制到具有相同超级文件夹名称的新文件夹

将子文件夹复制到具有相同超级文件夹名称的新文件夹

请随时引导我查看过去解决过该问题的论坛帖子,但我至今还没能找到它们。

我想要一个可以在终端中使用的代码,它允许我完成以下操作,但可以扩展到更多文件夹。tfMRI_SOCIAL_RL 是正在移动的文件夹。

第一个目录/1/MNINonLinear/结果/tfMRI_SOCIAL_RL --> 第二个目录/1/MNINonLinear/结果/

第一个目录/2/MNINonLinear/结果/tfMRI_SOCIAL_RL --> 第二个目录/2/MNINonLinear/结果/

第一个目录/3/MNINonLinear/结果/tfMRI_SOCIAL_RL --> 第二个目录/3/MNINonLinear/结果/

非常感谢,布兰登

答案1

如果我正确理解了你的问题,你想要移动的文件夹tfMRI_SOCIAL_RL包括它们的父文件夹,但不移动父文件夹中可能存在的其他文件或文件夹。

如果firstdirectoryseconddirectory位于同一父目录中,则可以使用:

cd /path/to/firstdirectory && mkdir ../seconddirectory && find -type d -name tfMRI_SOCIAL_RL -exec cp -r --parents '{}' ../seconddirectory \; -delete

如果firstdirectoryseconddirectory不在同一目录中,请使用

cd /path/to/firstdirectory && mkdir /path/to/seconddirectory && find -type d -name tfMRI_SOCIAL_RL -exec cp -r --parents '{}' /path/to/seconddirectory \; -delete

答案2

我建议使用 rsync。它比 copy 强大得多。

1)如果你只想将一个目录的全部内容复制到另一个目录(这似乎不是事实,因为它非常简单)那么 cp -r 就足够了,但 rsync 会更快。rsync

2)如果您希望能够继续同步两个文件夹并进行增量更改,那么 rsync 是最好的选择(cp 无法做到这一点)

2) 如果你只想复制文件夹名称(即树结构)而不复制文件,那么 rsync 仍然可以提供帮助。请参阅 https://www.cyberciti.biz/faq/unix-linux-bsdosx-copying-directory-structures-trees-rsync/

相关内容