find组合cp命令拷贝文件

拷贝示例命令如下

find /data/ -type f -name "*.zip" -print0| xargs -0 cp -at ./files/

说明:

-print0
1)是 find 命令的一个选项,用于将输出的文件或目录名用**null 字符(\0)**而不是换行符分隔。
2)默认情况下,find 输出的每个文件名是用换行符 \n 分隔的。
3)但如果某个文件名中包含空格或换行符,那就可能在处理时被误认为是两个文件。
4)-print0 可以避免这个问题,因为 \0 不会出现在合法的 Unix 路径中。

xargs -0
1)表示让 xargs 使用 null 字符 \0 作为输入项之间的分隔符。
2)正常的 xargs 默认使用空格、换行符、制表符等作为分隔符。
3)如果输入中包含这些字符,就会错误地拆分文件名。
4)加上 -0(也写作 --null)后,它会正确地解析 -print0 提供的 null 分隔格式。

cp -t

指定目标路径

 

删除文件示例

find . -type f -print0 | xargs -0 rm -f

这样即使文件名中包含空格或换行,也能被安全删除。

 

posted @ 2025-05-26 11:29  龙骑士老尹  阅读(80)  评论(0)    收藏  举报