尝试学习 Bash 脚本我想对当前目录下满足特定条件的所有文件执行一些命令。使用
find -name *.flac
Run Code Online (Sandbox Code Playgroud)
具体来说,我想转换.flac
为.mp3
. 我可以找到所有文件。但是,我没有看到使用-exec
forfind
和 using选项执行命令的区别xargs
。例如
find -name *.flac | xargs -i ffmpeg -i {} {}.mp3
Run Code Online (Sandbox Code Playgroud)
相比
find -name *.flac -exec ffmpeg -i {} {}.mp3 \;
Run Code Online (Sandbox Code Playgroud)
有人可以指出区别吗?什么是更好的实践?有什么优点/缺点?
另外:如果我想同时删除原始文件,我将如何在上面的代码中添加第二个命令?