와일드카드 입력을 통해 파일 디렉터리에서 누락된 파일 찾기

와일드카드 입력을 통해 파일 디렉터리에서 누락된 파일 찾기

현재 4가지 유형의 100개 파일, 총 400개 파일이 포함된 디렉토리가 있습니다. 어떤 것이 누락되었는지 알고 싶습니다. 내 현재 스크립트는 다음과 같습니다

for((i=1; i<=100; i++)); do name="File_Type_1_${i}.RData"; 
[[ ! -e "$name" ]] && echo "missing $name"; done

for((i=1; i<=100; i++)); do name="File_Type_2_${i}.RData"; 
[[ ! -e "$name" ]] && echo "missing $name"; done

for((i=1; i<=100; i++)); do name="File_Type_3_${i}.RData"; 
[[ ! -e "$name" ]] && echo "missing $name"; done

for((i=1; i<=100; i++)); do name="File_Type_4_${i}.RData"; 
[[ ! -e "$name" ]] && echo "missing $name"; done

4번이나 실행해야 하는 게 귀찮습니다. 모든 것을 동시에 실행하는 방법이 있나요? 이것

답변1

ls -l File_type_{1..4}_{1..100}.RData > /dev/null

이 명령은 중괄호 확장을 사용하여 400개의 파일 이름을 모두 생성한 다음 ls이를 나열하도록 요청합니다. 단, 출력을 즉시 /dev/null로 리디렉션하고 삭제하면 됩니다. ls예를 들어 stderr에 누락된 파일에 대해 불평합니다.

ls: cannot access 'File_type_1_99.RData': No such file or directory
ls: cannot access 'File_type_3_42.RData': No such file or directory

누락된 파일도 그 중 하나입니다!

관련 정보