Rename all the files within a folder with prefix “Unix_” i.e. suppose a folder has two files a.txt and b.pdf than they both should be renamed from a single command to Unix_a.txt and Unix_b.pdf
5 Answers
The rename command can rename files using regular expressions, which makes it very powerful. In your case, you could do
rename 's/(.*)/Unix_$1/' *.txt

- 193
-
-
-
1No need to capture, just replace the beggining-of-string:
rename 's/^/Unix_/' *.pdf
– mmoya Nov 12 '13 at 23:03 -
this doesn't work for filenames starting with
-
which leads to the errorUnknown option:...
– mcExchange Jun 14 '20 at 13:09 -
@mcExchange , have you tried with
--
option? Normally, all standard utilities support the end of option processing option "double-dash". Just in case, there's alsokrename
, andmrename
. More withapt search rename
if available, including repository source lists. – Artfaith Nov 05 '23 at 02:03
If you're using Zsh as your shell, you could also use the function zmv
.
Add this line to your .zshrc
:
autoload -U zmv
then you could run:
% zmv -W '*' 'Unix_*'
See man zshcontrib
for further information.

- 481
With the rename
utility included in the util-linux
package (the one on dj_segfault's answer comes from perl), you could do rename '' Unix_ *

- 10,666
Some of the other answers might be better however, if I thought that xargs deserved a mention since it is a very powerful tool (and on many systems):
In this particular you could do:
ls | xargs -n1 -I{} mv {} Unix_{}
Edit: Retracted per Gilles' comment. For this situation this solution should be considered only a hack due to the caveats as pointed out by the cited article. The other answers are much better. I still think that xargs
is still a useful tool (I use it with svn status
relatively frequently), but he's right, for simple execute some command on all files in a tree of directories, this isn't the answer and find is much better. (Leaving the answer since the I think the comment is good for people who'd make the same mistake).
-
2Don't parse the output of
ls
.xargs
is actually rarely useful, especially now thatfind … -exec … +
exists. – Gilles 'SO- stop being evil' May 14 '11 at 23:11 -