찾기 명령은 여러 디렉터리와 여러 파일 확장자를 제외합니다.

찾기 명령은 여러 디렉터리와 여러 파일 확장자를 제외합니다.

많은 파일과 폴더가 포함된 폴더가 있습니다. 여기에는 많은 멀티미디어 파일(jpg, jpeg, mp4, mpeg)이 포함되어 있습니다. 이 디렉터리에는 많은 하위 폴더도 포함되어 있습니다.

나는 두 가지 일을 하고 싶다:

  1. 모든 파일의 총 개수 찾기

  2. 파일과 폴더가 사용하는 전체 크기를 찾습니다.

mp4, jpeg 파일과 같이 특정 확장자를 가진 파일을 제외하고 싶습니다. 또한 다양한 폴더를 제외하고 싶습니다. 1000개의 파일과 200개의 폴더가 있다고 가정해 보겠습니다. 이 파일 중에서 특정 확장자와 일부 폴더를 가진 파일을 제외하고 싶습니다. 예를 들어 az라는 폴더가 26개 있는 경우 h, f, y 등의 폴더를 제외하고 싶습니다.

이러한 파일과 폴더는 존재하는 총 파일 수와 해당 크기의 최종 출력에 포함되어서는 안 됩니다.

최선을 다해 90% 완료했습니다. 이 명령은 기존 파일과 디렉터리를 모두 제외하지만 폴더 이름도 인쇄하므로 출력에는 파일 이름만 표시됩니다.

find . -type d \( -path "*/Make-Directory-Script-master" -o -path "*/pycharm-community-2020.3" \) -prune  -o -type f \( -name "*.zip"  -o -name "*.pdf" -o -name "*.js" -o -name "*.json" -o -name "*.css" -o -name "*.srt" \) -prune -o  -print

어떤 도움이라도 대단히 감사하겠습니다.

답변1

-type f최종 전에 추가하십시오.-print

명령은 다음과 같습니다(가독성을 위해 접혀 있음).

find . -type d \( -path "*/Make-Directory-Script-master" -o -path "*/pycharm-community-2020.3" \) -prune  
    -o -type f \( -name "*.zip"  -o -name "*.pdf" -o -name "*.js" -o -name "*.json" -o -name "*.css" -o -name "*.srt" \) -prune 
    -o -type f -print

원래 명령(잘리고 번호가 매겨진 줄)

#1  find . -type d \( -path ... \) -prune  
#2    -o -type f \( -name ... \) -prune 
#3    -o -print
  • 라인 1에서는 목록에서 경로를 선택하여 -prune(즉, 검색 중지) 전체 라인 1 " \(..\) -prune"이 true로 평가되므로 경로 일치 패턴이 출력에서 ​​건너뜁니다.
  • 2번째 줄에서는 다음을 사용합니다.또는Conjunction( -o) 확장자 목록을 필터링하고 출력에서 ​​건너뜁니다.
  • -type f파일 이름이나 디렉터리 이름 등 나머지 경로를 인쇄 하지 않고 마지막 줄이나 3번째 줄을 사용하세요 .

관련 정보