我想使用带有管道的shell命令行来重命名文件。示例:将x111.png重命名为my_x111.png(为每个文件添加前缀“my_”)我知道mv xxx bbb是将xxx重命名为bbb的最佳方法,但是如何在shell中编写命令呢?
x111.png
my_x111.png
mv xxx bbb
wnrlj8wa1#
find -maxdepth 1 -type f | awk '{printf "mv %s my_%s\n", $2, $2}' FS=/ | sh
示例
mv README my_README mv tree.pl my_tree.pl mv youtube.sh my_youtube.sh
jckbn6z72#
rename 's/([^my_])(.*)/my_$1/g' *
此命令将所有文件名前面加上my_,但不包括已经以my_开头的文件名。这取决于您的rename版本,这需要perl版本而不是util-linux-ng版本。
my_
rename
qf9go6mv3#
用途:
ls -1 *.png | nawk '{p=$0;$0="my_"$0;;system("mv "p" "$0); }'
引用为here。
3条答案
按热度按时间wnrlj8wa1#
示例
jckbn6z72#
此命令将所有文件名前面加上
my_
,但不包括已经以my_
开头的文件名。这取决于您的
rename
版本,这需要perl版本而不是util-linux-ng版本。qf9go6mv3#
用途:
引用为here。