Bash 스크립트 도움말, 폴더의 모든 파일에 대한 권한 755 확인

Bash 스크립트 도움말, 폴더의 모든 파일에 대한 권한 755 확인

특정 폴더(/tmp)의 모든 파일에 권한 755가 있는지 확인하는 bash 스크립트를 만들려고 합니다. 권한 값 755가 없는 모든 파일을 삭제하려면 이 스크립트가 필요합니다.

나는 지금까지 운없이 이것을 시도했습니다.

#!/bin/bash
for filename in 'ls' 
do 
if [ -perm 0755 "$filename" ] 
then echo "Files with 755 permission: $filename" 
else rm "$filename" 
fi 
done 
echo "###DONE###"

당신이 제공할 수 있는 어떤 도움이라도 대단히 감사하겠습니다! :-)

답변1

다음 스크립트는 원하는 작업을 수행해야 합니다. 호출하는 디렉터리에서 실행됩니다.

#!/bin/bash
echo "###START###"
for filename in * 
do 
    if [ $(stat -c "%a" "$filename") == "755" ] 
    then 
        echo "Files with 755 permission: $filename" 
    else 
        echo "REMOVING: $filename"
        rm "$filename" 
    fi 
done 
echo "###DONE###"

답변2

스크립트는 다음과 같이 간단하게 구성될 수 있습니다.

#!/bin/bash
echo "Files with 755 permission:"
find . -perm 755
echo "Deleting all other files"
find . -not -perm 755 -delete
echo "Done"

현재 디렉터리와 그 아래의 모든 디렉터리에서 파일이 삭제됩니다. 755 이외의 권한이 있는 항목도 경고 없이 삭제되므로 주의해서 사용하세요.

관련 정보