gpt4 book ai didi

linux - 当 find 提供文件时如何在文件名中使用空格 cp 文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:57:42 24 4
gpt4 key购买 nike

我想确保通过查找找到的符合给定条件的所有文件都正确复制到所需位置。

$from = '/some/path/to/the/files'
$ext = 'custom_file_extension'
$dest = '/new/destination/for/the/files/with/given/extension'

cp 'find $from -name "*.$ext"' $dest

这里的问题是,当找到具有正确扩展名且包含空格的文件时,cp 无法正确复制它。

最佳答案

你不会那样做。你不能那样用空格拼写文件名。

你要么使用来自 http://mywiki.wooledge.org/BashFAQ/001 的东西要逐行读取 find 的输出或将输出读取到数组中,您可以使用 find -exec 来完成复制工作。

像这样:

from='/some/path/to/the/files'
ext='custom_file_extension'
dest='/new/destination/for/the/files/with/given/extension'

find "$from" -name "*.$ext" -exec cp -t "$dest" {} +

此处使用-exec command + 意味着find 将根据命令长度限制只执行所需数量的cp 命令。在此处使用 -exec 命令; 将运行一个 cp-per-file-found(但更适合旧系统)。

请参阅 gniourf_gniourf 关于在 cp 命令中使用 -t 以使 -exec 命令 + 正常工作的评论。

关于linux - 当 find 提供文件时如何在文件名中使用空格 cp 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28973781/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com