我有一个要求,用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