重命名带有前缀“Unix_”的文件夹中的所有文件

重命名带有前缀“Unix_”的文件夹中的所有文件

重命名带有前缀“Unix_”的文件夹中的所有文件,即假设一个文件夹有两个文件 a.txt 和 b.pdf,那么它们都应该从单个命令重命名为 Unix_a.txt 和 Unix_b.pdf

答案1

$ for f in * ; do mv "$f" Unix_"$f" ; done

答案2

改名命令可以使用正则表达式重命名文件,这使得它非常强大。在你的情况下,你可以这样做

rename 's/(.*)/Unix_$1/' *.txt

答案3

如果您正在使用兹什作为您的 shell,您还可以使用该函数zmv

将此行添加到您的.zshrc

autoload -U zmv

然后你可以运行:

% zmv -W '*' 'Unix_*'

man zshcontrib了解更多信息。

答案4

然而,如果我认为 xargs 值得一提,因为它是一个非常强大的工具(并且在许多系统上),其他一些答案可能会更好:

在这一点上你可以这样做:

ls | xargs -n1 -I{} mv {} Unix_{}

编辑:撤回每吉尔斯' 评论。对于这种情况,由于引用文章指出的警告,该解决方案应仅被视为黑客。其他答案要好得多。我仍然认为这xargs仍然是一个有用的工具(我相对频繁地使用它svn status),但他是对的,为了简单地对目录树中的所有文件执行一些命令,这不是答案,而 find 更好。 (留下答案,因为我认为该评论对于犯同样错误的人来说是有好处的)。

相关内容