如果我的目录包含一些名称带有空格的文件,例如
$ ls -1 dir1
file 1
file 2
file 3
我可以将它们全部成功复制到另一个目录,如下所示:
$ find dir1 -mindepth 1 -exec cp -t dir2 {} +
但是,的输出find dir1 -mindepth 1
包含未转义的空格:
$ find dir1 mindepth 1
dir1/file 1
dir1/file 3
dir1/file 3
如果我使用print0
而不是print
,则输出仍包含未转义的空格:
$ find dir1 mindepth 1 -print0
dir1/file 1dir1/file 2dir1/file 3
要使用手动复制这些文件cp
,我需要转义空格;但是,似乎当cp
的参数来自时,这是不必要的find
,而不管我是使用命令+
还是\;
命令的末尾。
这是什么原因呢?
find..exec
可以自行处理..怪异的文件名