使用“查找”重命名子文件夹内的所有 .txt 文件

使用“查找”重命名子文件夹内的所有 .txt 文件

我想重命名.txt文件夹内的所有文件。此重命名可.txt帮我重命名所有文件:

rename 's/\.txt//g' *.txt -v

但当我想重命名所有子文件夹时

find ./ -type d -execdir rename 's/\.txt//g' *.txt -v ";"

它告诉我:

Can't rename *.txt *: No such file or directory
Can't rename *.txt *: No such file or directory
...

find ./ -type -d正确显示当前文件夹和所有子文件夹。

为什么我有No such file or directory消息?

答案1

您需要正确使用find语法-exec,使用'{}'来表示找到的文件

find ./ -type d -name '*.txt' -execdir rename -n 's/\.txt//g' '{}' \;

测试完-n之后就删除。rename

(假设您确实想要更改目录名称而不是常规文件名 - 如果是这种情况,请使用-type f而不是type -d

相关内容