我有一些.html
文件需要从一个地方复制到另一个地方。
源文件夹包含除 之外的文件.html
,因此我需要首先仅查找文件.html
,然后将它们复制到其他目录,同时保持相同的结构。
像这样的东西:
cp --parents `find ./src -name '*.html'` ./dist
问题是文件放在里面./dist/src/**/*.js
而不是./dist/**/*.js
.
总而言之,我想将所有文件(同时保持文件夹结构)从一个文件夹复制到另一个文件夹,而无需源父文件夹。
例如:
src/
folder1/
a.html
a.x
folder2/
folder3/
b.html
到
dist/
folder1/
a.html
folder2/
folder3/
b.html
答案1
rsync -rmv --include='*/' --include='*.html' --exclude='*' src/ dest
-r 递归,-m 修剪空目录,-v 详细。默认情况下,rsync 复制所有内容,因此我们仅包含带有 .html 后缀的文件并排除其他所有内容。--include='*/'
存在是为了强制 rsync 下降到目录中,没有它它不会复制任何内容。 src 后面的尾随/
很重要,这样 src 本身就不会复制到 dest 中。
查看man rsync
您是否想要复制模式、所有权等并添加相关选项。