最近遇到一个需求,需要搬运指定目录下的一些文件到其它目录。具体如下:假设用户需要搬运的文件是 a.txt
,我们需要找到当前目录下存在的其它包含前缀的 a.txt
文件,例如 gz-a.txt
、dj-a.txt
、ny-a.txt
等等,然后将这些文件搬运到对应的目标目录,并重命名为 a.txt
。搬运完后,删除源目录中的原文件。
目录结构示例
源目录(用户输入的源目录路径,例如 /www/zk-prac/aa/bb/cc
)中可能包含以下文件:
目标基本目录(用户输入的目标基本目录路径,例如 /www/
)的结构如下:
在这个例子中,脚本需要将 /www/zk-prac/aa/bb/cc/gz-a.txt
搬运到 /www/gz-prac/aa/bb/cc/a.txt
,/www/zk-prac/aa/bb/cc/dj-a.txt
搬运到 /www/dj-prac/aa/bb/cc/a.txt
和/www/zk-prac/aa/bb/cc/ny-a.txt
搬运到 /www/ny-prac/aa/bb/cc/a.txt
并删除源文件。
脚本实现
安装两个依赖包:
由于使用的是ES Module,你需要在package.json
添加如下声明:
以下是实现该需求的 Node.js 脚本:
使用说明
- 运行脚本时,首先会询问用户输入源目录路径。
- 然后询问用户输入目标基本目录路径。
- 用户输入要搬运的文件名(例如
a.txt
)。
- 脚本会在源目录中找到所有包含前缀的目标文件,并将它们搬运到对应的目标目录,同时将文件重命名为用户指定的文件名,并删除源文件。