Bagaimana cara menggabungkan output dari banyak perintah `find`?


11
find -type f -name "*.avi" -exec md5sum {} + > checklist.chk
find -type f -name "*.mp4" -exec md5sum {} + > checklist.chk

Bagaimana cara menggabungkan kedua perintah ini?

  1. Baik dengan menggabungkan kedua istilah pencarian dalam satu perintah atau

  2. Sehingga setiap perintah menambahkan outputnya ke file yang sama.

Semoga jelas apa yang saya coba lakukan.

Jawaban:


25

Menggabungkan:

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

Menambahkan output ke satu file:

find -type f -name "*.avi" -exec md5sum {} + > checklist.chk
find -type f -name "*.mp4" -exec md5sum {} + >> checklist.chk

1
+1 juga menyebutkan kemungkinan menambahkan ke file output.
Dubu

8

Ada banyak cara untuk melakukan ini:

Menggunakan atau -o:

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

Menggunakan Regex:

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

Keduanya akan menulis output ke file checklist.chk.


1
Terima kasih .. Saya tahu tentang operator -o tetapi tidak tahu sintaksnya. Juga tidak tahu tentang regex bisa digunakan seperti ini. Terima kasih :)
akya

4

Dengan -obendera (yang berada di bawah findhalaman manual OPERATOR di )

find . -type f \( -name "*.avi" -o -name "*.mp4" \) -exec md5sum {} + > checklist.chk
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.