Alb*_*elB 31 linux file-transfer cp
我有一个目录,其中包含一堆其他包含 CoffeeScript/JavaScript 文件的文件夹。我能够将 CoffeeScript 文件编译到一个具有相同文件夹结构的新文件夹中。
我想要做的是将源文件夹中的所有 *.js 文件递归复制到目标文件夹。我也不想覆盖目标文件夹中已经存在的任何文件。关于如何实现这一点的任何想法?
在查看了另一个类似的问题后,我尝试使用cp -n source/**.js desination/和cp -Rn source/**.js desination/,但它似乎不起作用。
知道如何做到这一点吗?
bon*_*nob 32
您可以使用 rsync (它也可以进行本地复制)
rsync -r --ignore-existing --include=*/ --include=*.js --exclude=* source/ destination
Run Code Online (Sandbox Code Playgroud)
-r 递归到目录中,--ignore-existing 忽略目标中的现有文件,include和exclude筛选器是指:包括所有的目录,包括所有的* .js文件,排除其余的; 需要第一个包含,否则最后的排除也将在扫描内容之前排除目录。最后,您可以添加一个-Pif 您想观看进度,一个--list-onlyif 您想查看它将复制的内容而不实际复制,以及一个-tif 您想保留时间戳。
这不相关,但我最近学习了 rsync 命令,当时我将 15 年的文档从一个分区移动到另一个分区。确信我的文件在那里,然后我擦除了旧分区并在那里放了一些其他东西;后来我意识到我丢失了所有时间戳,并发现了 -t 标志。只是想分享我的苦恼:'(
小智 17
这也可以使用 cp 来实现。看这里:
sudo cp -vnpr /xxx/* /yyy
Run Code Online (Sandbox Code Playgroud)
xxx = 来源
yyy = 目的地
v = 冗长
n = 无破坏(无覆盖)
p = 保留权限
r = 递归
小智 5
查看手册页,您似乎想要该-n选项。
-n, --no-clobber
do not overwrite an existing file (overrides the previous -i option)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46652 次 |
| 最近记录: |