Centos

用特定名稱重命名所有文件

  • November 17, 2011

我正在嘗試查找名稱為“stringx”的某些文件,並將名稱(但不是副檔名)替換為“stringy”。所以基本上對於 stringx.txt 和 stingx.cs,我想要 stringy.txt 和 stringy.cs。我嘗試使用以下命令測試我的重命名命令正則表達式,但它沒有返回任何結果:

rename -n 'stringx./s/\*$stringy./\/' stringx.*

我在 Centos 下執行 csh。我可以看到我的正則表達式可能不正確,但我看不到任何結果來驗證這一點。我可以看到有名為 stringx 的文件。具有以下內容:

find ./ -name 'stringx.*'
rename stringx stringy stringx.*

rename在典型的 Linux 系統上呼叫了(至少)兩個實用程序。Debian 和衍生髮行版(包括 Ubuntu)提供了一個 Perl 腳本,其語法為

rename 's/stringx/stringy/' stringx.*

在其他發行版上,包括 CentOS,rename來自 util-linux,它的語法是我上面寫的。該實用程序rename.ul以 Debian 及其衍生產品的名稱提供。

如果您想在子目錄中遞歸,假設 csh 您的意思是 tcsh(但實際上,請考慮進入 1990 年代中期並切換到 zsh):

set globstar
rename stringx stringy stringx.* **/stringx.*

引用自:https://unix.stackexchange.com/questions/24761