如何重命名目录中的文件?

如何重命名目录中的文件?

我想查找所有以 file.one.ext 结尾的文件并将它们重命名为 file.ext

我已经设法做到了这一点,但是它会将文件移动到工作目录,而不是找到该文件的目录。

find . -name "file.one.ext" -exec bash -c 'mv "$0" "file.ext"' {} \;

$0 包含完整路径和文件名,但我如何获取该目录并将其附加到新文件名。

如果这样更方便的话,我也rename安装了。我在 macOS Sierra 上。

答案1

如何重命名目录中的文件?

你唯一缺少的是dirname从命令:

find . -name "file.one.ext" -exec bash -c 'mv "$0" "$(dirname $0)/file.ext"' {} \;

例子

mkdir test1 test2
touch test1/file.one.ext test2/file.one.ext
find . -name "file.one.ext" -exec bash -c 'mv "$0" "$(dirname $0)/file.ext"' {} \;
ls test1/ test2/

test1/:
file.ext

test2/:
file.ext

演示

示例输出的动画 gif

相关内容