如果我这样做则不起作用:
string*.extension
我该怎么做呢?
我想重命名一个文件,该文件有一个特定的开头,但之后是完全随机的,但具有特定的扩展名。
答案1
您可以使用find
,从当前目录递归搜索:
find . -type f -name 'start*.ext' -exec mv -i {} foobar.txt \;
假设文件名以 开头start
且扩展名为.ext
,将文件重命名为foobar.txt
。替换这些以满足您的需要。
非递归搜索:
find . -maxdepth 1 -type f -name 'start*.ext' -exec mv -i {} foobar.txt \;
请注意,要将一堆文件重命名为特定模式,方法会有所不同;上述过程用于查找并将单个文件重命名为您在问题中提到的固定名称。
如果您只想重命名文件,您也可以使用rename
( prename
):
rename -n 's/^start.*?\.ext$/foobar.txt/' *.*
-n
将进行空运行,执行实际的删除操作-n
:
rename 's/^start.*?\.ext$/foobar.txt/' *.*