여러 개의 'find'명령의 출력을 결합하는 방법은 무엇입니까?


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

이 두 명령을 결합하는 방법?

  1. 하나의 명령으로 두 검색어를 결합하거나

  2. 따라서 각 명령은 출력을 동일한 파일에 추가합니다.

내가하려는 일이 분명하기를 바랍니다.

답변:


25

결합 :

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

하나의 파일에 출력 추가 :

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

1
출력 파일에 추가 할 가능성에 대해서도 +1합니다.
Dubu

8

이를 수행하는 방법에는 여러 가지가 있습니다.

사용하여 -o:

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

정규식 사용 :

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

둘 다 출력을 파일에 씁니다 checklist.chk.


1
고마워요. -o 연산자에 대해서는 알고 있었지만 구문은 몰랐습니다. 또한 정규식에 대해 몰랐습니다. 감사합니다 :)
akya

4

-o플래그를 사용하여 ( findman 페이지의 OPERATORS 아래에 있음 )

find . -type f \( -name "*.avi" -o -name "*.mp4" \) -exec md5sum {} + > checklist.chk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.