重命名带有前缀“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 更好。 (留下答案,因为我认为该评论对于犯同样错误的人来说是有好处的)。