将特定扩展名的所有文件复制到单独的文件夹中,保留文件夹结构(递归)
Copy all files of a particular extension into a separate folder, retaining folder structure (recursive)
简单任务:我有一个任意代码的嵌套文件夹,在任何特定文件夹中包含 CSS 个文件。我想要一个命令,将这些文件(并且仅那些文件)复制到一个新文件夹中,从而重现它们所在的相同文件夹结构。
shell 命令或节点命令都可以。
例如鉴于此:
src/folder1/file1.css
src/folder1/... other files...
src/folder2/subfolder/file2.css
src/folder2/subfolder/X/Y/Z/file.css
src/folder3/whatever.html
src/folder4/blah.html
该命令将生成以下内容:
dist/folder1/file1.css
dist/folder2/subfolder/file2.css
dist/folder2/subfolder/X/Y/Z/file.css
有什么想法吗?
希望对您有所帮助。
cd src && find . -name \*\.css -or -name \*\.html | while read src; do srcdir=$(echo "$src" | rev | cut -d'/' -f2- | rev); dstdir="../dist/$srcdir"; [ -d "$dstdir" ] || mkdir -p "$dstdir"; cp "$src" "../dist/$src"; done
您可以使用 rsync
:
rsync -avm --include '*/' --include '*.css' --exclude '*' src/ dist
-a
是存档模式:递归,保留属性,权限等
-m
是修剪:删除 .css
路径 不需要的目录
-v
是详细日志记录
简单任务:我有一个任意代码的嵌套文件夹,在任何特定文件夹中包含 CSS 个文件。我想要一个命令,将这些文件(并且仅那些文件)复制到一个新文件夹中,从而重现它们所在的相同文件夹结构。
shell 命令或节点命令都可以。
例如鉴于此:
src/folder1/file1.css
src/folder1/... other files...
src/folder2/subfolder/file2.css
src/folder2/subfolder/X/Y/Z/file.css
src/folder3/whatever.html
src/folder4/blah.html
该命令将生成以下内容:
dist/folder1/file1.css
dist/folder2/subfolder/file2.css
dist/folder2/subfolder/X/Y/Z/file.css
有什么想法吗?
希望对您有所帮助。
cd src && find . -name \*\.css -or -name \*\.html | while read src; do srcdir=$(echo "$src" | rev | cut -d'/' -f2- | rev); dstdir="../dist/$srcdir"; [ -d "$dstdir" ] || mkdir -p "$dstdir"; cp "$src" "../dist/$src"; done
您可以使用 rsync
:
rsync -avm --include '*/' --include '*.css' --exclude '*' src/ dist
-a
是存档模式:递归,保留属性,权限等-m
是修剪:删除.css
路径 不需要的目录
-v
是详细日志记录