如何组合多个`find`命令的输出?

aky*_*kya 11 command-line find

find -type f -name "*.avi" -exec md5sum {} + > checklist.chk
find -type f -name "*.mp4" -exec md5sum {} + > checklist.chk
Run Code Online (Sandbox Code Playgroud)

如何结合这两个命令?

  1. 通过在一个命令中组合两个搜索词或

  2. 这样每个命令都将其输出添加到同一个文件中。

希望很清楚我要做什么。

Flo*_*sch 25

结合:

find -type f \( -name "*.avi" -or -name '*.mp4' \) -exec md5sum {} + > checklist.chk 
Run Code Online (Sandbox Code Playgroud)

将输出添加到一个文件:

find -type f -name "*.avi" -exec md5sum {} + > checklist.chk
find -type f -name "*.mp4" -exec md5sum {} + >> checklist.chk
Run Code Online (Sandbox Code Playgroud)


hee*_*ayl 8

有很多方法可以做到这一点:

使用或-o

find . -type f \( -name '*.avi' -o -name '*.mp4' \) -exec md5sum {} + > checklist.chk
Run Code Online (Sandbox Code Playgroud)

使用正则表达式:

find . -type f  -regextype posix-extended -regex '.*\.(avi|mp4)$' -exec md5sum {} + > checklist.chk
Run Code Online (Sandbox Code Playgroud)

两者都将输出写入文件checklist.chk