我在目录中有很多日志文件,并且它的子目录名为dataupload_sales_.xxx.com.dat
。我想将所有文件xxx.com
部分更改为yyy.com
当前目录和子目录中。
我希望这不是重复的帖子,因为我已经搜索了论坛并尝试了几个选项,但都没有用。有些帖子建议使用重命名,但只能在单个文件中重命名。我的目录中有 5000 多个子目录,每个子目录都有 100 多个.dat
文件。
我也试过
find ./ -name "xxx.com" -exec bash -c 'mv $0 $(echo "$0" | sed -r \"s|xxx.com|yyy.com|g\")' '{}' \;
它显示无效目录错误
答案1
从您想要递归更改文件名的文件夹:
find . -name '*.xxx.com.dat' -exec rename 's/xxx/yyy/' -- {} +