如何查找并复制带有空格的文件?

如何查找并复制带有空格的文件?

我尝试mp3在任何子目录中查找文件并复制它们,例如在当前目录中。这是我尝试的命令:

find . -name *.mp3  -ls | gawk '{printf("cp %s .\n", $11);}'

find命令列出了所有正确转义的文件,但gawk似乎存在问题。find例如,该命令列出了以下文件

8132326 7392 -rw-r--r--   1 alexander alexander  7566180 Nov 27 20:22 ./For\ The\ Kids\ EP\ [12_\ Vinyl\ EP\ -\ DP003]/01\ A1\ For\ the\ Kids.mp3

而命令将字符串gawk视为$11

./For

代替

./For\ The\ Kids\ EP\ [12_\ Vinyl\ EP\ -\ DP003]/01\ A1\ For\ the\ Kids.mp3

这是为什么?以及如何正确处理这个问题(有或没有gawk)?

答案1

正确的命令是

 find /folder/to/be/searched -type f -name '*.mp3' -exec cp "{}" /target/folder \;

它更简单,因此出错的机会更少。唯一要注意的是:记住使用绝对路径,而不是相对路径。

相关内容