특정 폴더(/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 이외의 권한이 있는 항목도 경고 없이 삭제되므로 주의해서 사용하세요.