보관 파일만 포함해야 하는 하위 폴더가 많은 폴더가 있고 다른 파일 형식이 있는지 확인하고 싶다고 가정해 보겠습니다.
나는 명령을 사용할 수 있습니다
ls -l -R /backup --ignore="*.zip" --ignore="*.7z"
그러면 필요한 정보가 표시되지만 각 폴더 이름도 포함됩니다.
/backup/2000/Jan:
total 0
/backup/2000/Feb:
total 0
등
무시된 파일만 포함된 폴더의 세부 정보를 제외할 수 있는 방법이 있습니까?
답변1
아카이브 파일만 포함해야 하는 하위 폴더가 많은 폴더가 있는데 다른 파일 형식이 있는지 확인하고 싶습니다.
이건 직업이 아닌 것 같아요 ls
. 직업인 것 같아find
. 아카이브 파일 패턴과 일치하지 않는 일반 파일을 나열하도록 요청하십시오.
find /backup -type f ! -name '*.zip' ! -name '*.7z'
파일명과 -ls
동일한 정보를 보고 싶다면 맨 마지막에 추가하세요. ls -l
(일부 구현에서는 사용할 수 없습니다 find
.)
답변2
여러 가지 솔루션이 있습니다. 가장 간단한 방법은 아마도 쉘의 확장된 와일드카드 문자를 사용하는 것입니다.
shopt -s extglob
ls -l **/*!(.zip|.7z)
을 사용할 수도 있습니다 find
.
find /backup -type f ! \( -name "*zip" -o -name "*7z" \)
첫 번째 명령은 숨겨진 디렉터리를 제외하지만 두 번째 명령은 제외합니다.