我想重命名.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
)