我有一個要求,用LINUX中的當前時間標記重命名目錄中的所有文件(而不是單個文件)。重命名Linux中的目錄中的多個文件
例如:
[email protected]@_12345.txt, [email protected]@_56789.txt
到
abcd_001_20141205063435_12345.txt, abcd_002_20141205063435_56789.txt
我用rename
命令,但是無法更改名稱。有人能幫助我嗎? 快速回復將不勝感激。
我有一個要求,用LINUX中的當前時間標記重命名目錄中的所有文件(而不是單個文件)。重命名Linux中的目錄中的多個文件
例如:
[email protected]@_12345.txt, [email protected]@_56789.txt
到
abcd_001_20141205063435_12345.txt, abcd_002_20141205063435_56789.txt
我用rename
命令,但是無法更改名稱。有人能幫助我嗎? 快速回復將不勝感激。
rename @[email protected] $(date +%Y%m%d%H%M%S) *@[email protected]*
也man rename
詳見多的例子
謝謝Dinesh,它現在正在工作。 – 2014-12-05 07:18:24
你只想將它們手動重命名,那麼你可以使用這樣的事情:
rename 's/@[email protected]/20141205063435/' *.txt
如果要自動執行它,你可以使用date
命令給你當前的日期。
rename "s/$(date)/$(date +%Y%m...)/" *.txt
您提供的「rename」不是默認情況下在大多數Linux機器上找到的'util-linux'軟件包的一部分。你的例子顯然是一個名爲rename的perl腳本。您需要確保您做出區分,否則可能會導致數據丟失。 – 2014-12-05 06:59:21
你是如何嘗試它是怎麼會失敗呢?這也有助於指導答案。 – icedwater 2014-12-05 06:15:52