複製 find 命令列出的檔案並使用路徑重命名

複製 find 命令列出的檔案並使用路徑重命名

我正在製作find具有特定擴展名的所有文件,然後將它們複製到特定資料夾,但大多數文件都被覆蓋,因為它們具有相同的名稱。如何使用 Linux 命令獲取檔案的路徑並將其替換為名稱檔案?

現在我正在使用這個命令:

find . -name "*.css" | xargs cp -t /folder/AllCssFiles/

所以如果我在某個路徑上有兩個文件,如下所示:

/something/abc/file.css
/anyting/xyz/file.css

當我使用該命令時,我應該在 AllCssFiles 資料夾中得到類似的內容:

  /something/abc/file.css   (name of the file)
  /anyting/xyz/file.css

答案1

您可以使用-execdir指令rename1

find ./ -type f -name "*.css" -execdir rename -v "s/search/replace/" {} \;

如果您不確定,您可以rename使用-n

  -n, -nono
           No action: print names of files to be renamed, but don't rename.

1這是 在基於 Debian 的系統(在某些系統和其他系統中)上呼叫的語法。perl-renamerenameprenameperl-rename

相關內容