我试图在一个文件夹及其子文件夹中复制某种类型的所有文件!
我知道cp /source/path /path/to/destination_path
。
我知道find . -name "*.mp4"
我试过了cp "$(find . -name "*.mp4")" /path/to/destination
。虽然问题似乎是,但是这个结果会将结果放在一个字符串中。
你有解决方案吗?提前致谢。 :)
答案 0 :(得分:1)
如果要保留文件夹结构,请考虑rsync
:
rsync -r --include='*.mp4' --exclude='*' . /path/to/destination
如果您不需要保留结构 -
在GNU系统上(具有非标准扩展名cp -t
),您可以以尽可能少的cp
个实例运行的方式执行此操作:
find . -name '*.mp4' -exec cp -t /path/to/destination -- '{}' +
否则,在POSIX兼容表单中,每个文件找到一个cp
:
find . -name '*.mp4' -exec cp -- '{}' /path/to/destination/ ';'
答案 1 :(得分:0)
输出结果为一个字符串,因为您在find
结果上有引号。
要为每个find
结果执行命令,请使用-exec
代替(使用GNU bash
和find
):
find -name "*.mp4" -exec cp {} /path/to/destination/ \;