我試圖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 \;
它更簡單,因此出錯的機會更少。唯一的事情:記住使用絕對路徑,而不是相對路徑。