我尝试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 \;
它更简单,因此出错的机会更少。唯一要注意的是:记住使用绝对路径,而不是相对路径。