📌  相关文章
📜  忽略 node_modules 文件夹时复制文件夹 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:25:39.694000             🧑  作者: Mango

忽略 node_modules 文件夹时复制文件夹 - Shell-Bash

在开发过程中使用 npm 等包管理器来管理依赖关系,通常情况下会在项目根目录下面创建一个 node_modules 目录来存储安装的依赖模块。

当我们进行项目部署或者打包的时候,需要将项目中的文件和依赖一并复制到部署或打包目录中。然而,node_modules 目录下的文件通常很多,且大部分不需要复制到部署或打包目录中,因此我们需要忽略该目录。

下面介绍在 Shell-Bash 环境中如何复制文件夹时忽略 node_modules 目录。

使用 rsync 命令

rsync 命令是一个常用的文件同步工具,可以在本地或者远程主机之间同步文件或目录。它支持多种同步模式,并且能够快速、安全地传输大量数据。

rsync 命令的基本语法如下:

rsync [OPTION...] SRC... [DEST]

其中,SRC 表示源文件路径,DEST 表示目标文件路径。rsync 命令支持大量的选项,可用 man rsync 命令查看详细文档。

在复制文件夹时,我们可以使用 rsync 命令来忽略 node_modules 目录。具体操作如下:

rsync -avzh --exclude='node_modules' /path/to/source/ /path/to/dest/

其中,-a 表示使用归档模式,保留文件属性、权限等信息。-v 表示输出详细信息。-z 表示压缩传输数据,减少传输时间。-h 表示输出易于理解的文件大小信息。--exclude='node_modules' 表示忽略 node_modules 目录。

示例输出如下:

sending incremental file list
./
index.html
app.js

sent 260.69K bytes  received 36 bytes  173.83K bytes/sec
total size is 275.15K  speedup is 1.05

其中,在文件列表中我们可以看到 node_modules 目录被忽略了。

使用 find 命令和 cp 命令

除了使用 rsync 命令,我们也可以使用 Shell-Bash 中的 find 命令和 cp 命令来实现忽略 node_modules 目录的复制。具体操作如下:

find /path/to/source/ -type f ! -path "*/node_modules/*" -exec cp {} /path/to/dest/ \;

其中,-type f 指定查找的是文件类型,! -path "*/node_modules/*" 表示忽略 node_modules 目录。-exec cp {} /path/to/dest/ \; 表示将查找到的文件复制到目标目录。

结论

在 Shell-Bash 环境下,我们可以使用 rsync 命令或者 find 命令和 cp 命令来忽略 node_modules 目录的复制。这样可以有效减少不必要的复制时间和空间,提高部署和打包的效率。