linux - 如何使用 -exec 查找和重命名所有文件

标签 linux find pipe exec rename

我想重命名所有以“.mp4”结尾的文件,而不是包含下划线的空格。 示例:

Original file -> test 1.mp4
Renamed file -> test_1.mp4

我正在尝试:

find . -iname "*.mp4"  -exec mv {} $(echo '{}' | tr " " "_") \;

但我只有:

mv: ‘./test 1.mp4’ and ‘./test 1.mp4’ are the same file

看来我的管道不工作了。我将不胜感激。

最佳答案

到目前为止,似乎唯一的方法是通过“重命名”命令。

这是有效的命令:

find /tmp/test/ -iname "*.mp4" -exec rename " " "_" "{}" \;

关于linux - 如何使用 -exec 查找和重命名所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45664128/

相关文章:

linux - 我怎样才能让 GNU 'find' 在目录树中找到文件名的*第一个*实例?

javascript - 在所有键值对都是唯一的对象数组中查找对象

c - Win32,即使在 child 终止后也从管道 block 读取文件

java - Perl 将 bash 管道发送到 Java

windows - 在 Win32 上从 stdin 读取二进制数据,并将其写入文件

linux - 在 tail 选项期间在 Putty 中播放声音

linux - 如何将 Linux 命令放在括号中?

linux - -z 和 -o 命令在 Linux shell 脚本中意味着什么?

linux - 导出在我的 shell 脚本中不起作用

bash - 在 bash 脚本中使用查找 - 如何处理查找返回 "file or directory does not exist"的情况