.gif
여러 디렉터리를 생성한 다음 파일 확장자(예: in)에 따라 한 디렉터리의 다른 파일을 특정 하위 디렉터리로 이동하여 구성하는 스크립트를 만들었습니다 .media
.jpg
pictures
이제 이 디렉터리에 올바른 확장자를 가진 파일만 포함되어 있는지 확인해야 합니다.
다음 단계를 설명하는 몇 가지 의견과 함께 지금까지 생각해낸 내용은 다음과 같습니다.
#!/bin/bash
#iterate over each DIRECTORY once
#while in DIRECTORY list the files it contains
#check the extension of containe files with given list of EXTENSIONS
#if file has wrong extension print error message and stop loop
#if all files are in corret DIRECTORY print confirmation message
echo "Checking: $DIRECTORY for:$EXTENSIONS"
for (( i = 0; i < 4; i++ )); do
if [[ i -eq 1 ]]; then
DIRECTORY="documents"
EXTENSIONS="*.txt *.doc *.docx"
#list files and check EXTENSIONS
elif [[ i -eq 2 ]]; then
DIRECTORY="media"
EXTENSIONS="*.gif"
#if I equals 2 then look into media DIRECTORY
#list files and check EXTENSIONS
elif [[ i -eq 3 ]]; then
DIRECTORY="pictures"
EXTENSIONS="*.jpg *.jpeg"
#if I quals 3 then look into pictures DIRECTORY
#list files and check EXTENSIONS
else
DIRECTORY="other"
EXTENSIONS="*"
#statements
fi
done
답변1
확장자와 일치하지 않는 모든 파일을 인쇄하는 것은 어떻습니까?
find documents -type f ! \( -name \*.txt -o -name \*.doc -o -name \*.docx \)
find media -type f ! -name \*.gif
find pictures -type f ! \( -name \*.jpg -o -name \*.jpeg \)
other
거기에 허용되는 것이 있는지 확인해야 하는 이유는 무엇입니까 ?
그런데 유닉스 규칙은 다음과 같습니다."결과 없음 = 좋은 소식". 따라서 위 명령은 지정된 확장자와 일치하지 않는 파일만 인쇄합니다. 모든 것이 제대로 진행되면 아무 것도 인쇄하지 않습니다.
추신: 이것은 좋은 예입니다.프로그래머의 진화. ;)