我尝试在所有子文件夹中递归搜索文件名中带有点的文件并删除这些点(最后一个除外)
rename 命令可以单独运行,find 命令也可以,但是它们不能一起工作:
find ./ -type f -execdir rename -n 's/\.(?=[^.]*\.)//g' *.txt \;
答案1
命令中的 glob-execdir
不起作用,最好find
搜索你想要的文件并rename
仅对它们运行:
find ./ -type f -name "*.txt" -exec rename -n 's/\.(?=[^.]*\.)//g' {} \;
事实证明您的rename
表达式不适用于路径,请尝试以下方法:
find ./ -type f -name "*.txt" -exec rename -n 's:\.(?=[^./]*\.)::g' {} \;