繁体   English   中英

使用bash中的给定前缀将批量文件复制到另一个目标

[英]Copy bulk files to another destination using a given prefix in bash

我想将所有比另一个新的文件从其原始位置/lib/复制到另一个目标/dest/lib/

要识别这些文件,我只需使用:

$ cd /lib/
$ find . -newer foobar
./foo/bar.py
./bar/foo/bar/foo.py
...

不幸的是,我不能简单地使用此命令,因为cp不知道如何动态创建文件夹。

因此,我使用了以下命令:

find /foo -type f -newer foobar | \
    xargs -n1 -I% sh -c 'mkdir -vp `dirname /dest/%` && cp -v % /dest/%'

这看起来非常复杂,而且速度非常慢。 有更好的解决方案吗?

您可以为此使用tar ,例如,让我们拥有目录“ 1”,然后将某些内容复制到目录“ 2”,然后:

cd 1
tar -c a.txt 3/b.txt | tar -x -C ../2

您也可以使用rsync它与本地路径一起使用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM