많은 파일과 폴더가 포함된 폴더가 있습니다. 여기에는 많은 멀티미디어 파일(jpg, jpeg, mp4, mpeg)이 포함되어 있습니다. 이 디렉터리에는 많은 하위 폴더도 포함되어 있습니다.
나는 두 가지 일을 하고 싶다:
모든 파일의 총 개수 찾기
파일과 폴더가 사용하는 전체 크기를 찾습니다.
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번째 줄을 사용하세요 .