1
我有一個帶有嵌套結構的「images」目錄,並且其中有.png文件。 我也有一個普通的目錄「svg」,裏面有一堆.svg文件。 我需要將每個.svg文件移動到相同的目錄中,其中.png文件具有相同的名稱。find + xargs:找到dir中的所有文件找到其他嵌套目錄中的對並移動到那裏
此命令爲單個給定.svg文件的工作原理:
find /images -name 'sample.png' | grep -v thumb | xargs -i{} dirname {}|xargs -0 -I {} mv /svg/sample.svg {}
的grep -v拇指,因爲應用於每個PNG文件存在與其他子目錄名爲「拇指」同名縮略圖文件。
我試圖對所有的文件寫入該命令:
find /svg/ -name "*.svg" -exec basename {} '.svg' \; | xargs -O -I {} "find /images/ -name {}"
但我收到和錯誤:`基名」通過信號終止13
此外,如果該第二命令的工作,下一步是將它與第一個命令結合起來,但這裏還有另外一個問題:我如何發送給定的文件名到最終的命令「mv」(參見代碼中的{???})?
find /svg/ -name "*.svg" -exec basename {} '.svg' \; | xargs -O -I {} "find /images/ -name {}" | grep -v thumb | xargs -i{} dirname {}|xargs -0 -I {} mv /svg/{???} {}
工程就像一個魔術!非常感謝你! – karagota