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 renameif 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.xargsis actually rarely useful, especially now thatfind … -exec … +exists. – Gilles 'SO- stop being evil' May 14 '11 at 23:11 -