현재 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
누락된 파일도 그 중 하나입니다!