我正在尋找一種遞歸地查找擴展名爲X(.js)的文件並在擴展名爲Y( .ts)的同一目錄中創建該文件的副本。Linux/Cygwin遞歸複製文件更改擴展
例如/foo/bar/foobar.js - > /foo/bar/foobar.js和/foo/bar/foobar.ts
/foo/bar.js - > /foo/bar.js和/ foo /bar.ts等等等等
我的盡職調查: 我想用找到& xargs的& CP和括號擴展(cp foobar.{js,ts}
),但是xargs的都使用大括號來表示從xargs的傳遞文件的列表。這讓我感到難過,因爲我最近才發現這種令人敬畏的醬油是支撐膨脹/替代品。
我覺得必須有單線解決方案,但我正在努力想出一個解決方案。
我發現了執行任務的想法:將需要的內容複製到一個新目錄,然後將此目錄與新目錄合併;遞歸地在每個目錄中運行重命名腳本;使用rsync複製;使用find,xargs和cpio。
現在看來,運行一個像this這樣的重命名腳本腳本就是我最終要做的。
也許最好問一下http://unix.stackexchange.com/ –
'xargs'不會專門解釋'{}'。但是,如何在xargs中從'foobar.js'獲得'foobar'? – choroba
我已經使用{}作爲xargs中的參數列表。我想我認爲這是做到這一點的方法。糟糕!無論如何,如果有辦法在傳遞給xargs的參數列表上執行一些sed/awk/bash魔法來獲得所需的名稱更改,我會很高興。我假設@choroba不知道怎麼樣? –