我试图在我的 Linux 系统上重命名几个文件。我使用了rename 's/foo/bar/g' *
我希望更改的所有文件都在当前目录中。它不会更改文件的名称,但我认为它应该。任何帮助将不胜感激。
一个简单的方做:
mv file2rename newname
您提到要使用rename
表达式一次重命名多个文件。从技术上讲,您不能仅使用*
符号来更改文件名。*
表示所有具有相同名称的文件。我们知道不存在具有相同名称的相同文件类型,但是您可以从文件重命名某些选定的部分。例如
ls test*.c
test_car.c test_van.c test_dog.c
您可以将这些文件的某些部分重命名为非全名。因为不能存在具有相同扩展名的相同文件名
admin @ me:~/ works $rename 's/test/practice/' *.c
执行此命令后,每个test
替换为practice
。
ls practice*.c
practice_car.c practice_van.c practice_dog.c
重命名文件 mv
mv old_name new_name
使用 mv 命令将文件的名称从old_name
更改为new_name
。
重命名当前目录中的文件扩展名的另一种方法,例如重命名.csv
中的所有.txt
文件:
for file in $(ls .); do
mv $file ${file/.txt/.csv}
done
这不会影响没有.txt
扩展的文件,并且会提示错误(应根据您的需要进一步开发)。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(9条)