Bash腳本幫助,檢查資料夾中所有檔案的權限755

Bash腳本幫助,檢查資料夾中所有檔案的權限755

我正在嘗試建立一個 bash 腳本,在其中檢查特定資料夾 (/tmp) 的所有檔案是否都具有權限 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 以外的任何權限,因此請謹慎使用。

相關內容