Rename all files in a folder with a prefix in a si

2019-01-16 04:02发布

Rename all the files within a folder with prefix “Unix_” i.e. suppose a folder has two files a.txt and b.pdf, then they both should be renamed from a single command to Unix_a.txt and Unix_b.pdf

8条回答
该账号已被封号
2楼-- · 2019-01-16 04:44

With rnm (you will need to install it):

rnm -ns 'Unix_/fn/' *

Or

rnm -rs '/^/Unix_/' *

P.S : I am the author of this tool.

查看更多
萌系小妹纸
3楼-- · 2019-01-16 04:48

If your filenames contain no whitepace and you don't have any subdirectories, you can use a simple for loop:

$ for FILENAME in *; do mv $FILENAME Unix_$FILENAME; done 

Otherwise use the convenient rename command (which is a perl script) - although it might not be available out of the box on every Unix (e.g. OS X doesn't come with rename).

A short overview at debian-administration.org:

If your filenames contain whitespace it's easier to use find, on Linux the following should work:

$ find . -type f -name '*' -printf "echo mv '%h/%f' '%h/Unix_%f\n'" | sh

On BSD systems, there is no -printf option, unfortunately. But GNU findutils should be installable (on e.g. Mac OS X with brew install findutils).

$ gfind . -type f -name '*' -printf "mv \"%h/%f\" \"%h/Unix_%f\"\n" | sh
查看更多
登录 后发表回答