我试图在Kali Linux中重命名很多文件,其中有近16,000个。它们被安排在近600个文件夹中,其中包含名称的随机数字,其中的文件在每个新文件夹中从0开始标记为0,1,2 ...(无文件扩展名)。我试图将文件转换为.jpg格式。以下代码仅在我打开终端中的文件夹目录时起作用 -
find . -name '[0-9][0-9][0-9]' -exec sh -c 'mv $0 $0.jpg' {} \;
find . -name '[0-9][0-9]' -exec sh -c 'mv $0 $0.jpg' {} \;
find . -name '[0-9]' -exec sh -c 'mv $0 $0.jpg' {} \;
但要为目录中的每个文件夹执行此操作将会相当繁琐。有关.sh可执行脚本的任何建议吗?
编辑:必须更改扩展名,名称可以保持原样...
答案 0 :(得分:2)
您可以使用单个查找命令:
find -type f -regextype posix-extended -regex '.*/[0-9]{1,3}' -exec mv -v {} {}.jpg \;
答案 1 :(得分:0)
如果您不介意安装其他工具,请使用rnm:
rnm -rs '/^\d{1,3}$/&.jpg/' -fo -dp -1 /path
^\d{1,3}$
是我们要查找的匹配项,替换部分中的&
是指文件名中匹配的部分。-fo
:仅文件模式-dp
:dir的深度(-1表示无限制)。