簡體   English   中英

在linux中刪除具有寫權限的文件

[英]Delete File having write permission in linux

我想創建一個 shell 腳本來刪除所有具有特定權限的文件和子目錄,例如僅對所有用戶具有寫入權限或寫入和讀取權限。

我試過這個

    echo "deleting files with write permission"
    for file in [find -perm -222] 
do
 rm $file
 done
   echo "FIles Deleted"

您的語法已關閉; [不運行新命令,它只是測試它的參數是否為非空。

find本身有一個刪除它找到的東西的選項,所以可能會使用它。

find -type f -perm -222 -print -delete

我猜您只需要常規文件( -type f ),盡管-delete也可以處理目錄。 -print導致文件在被刪除之前被打印。

(實際上,您的語法只是在標記[find-perm-222]循環; for的參數只是字符串。如果您想在那里運行命令,語法將是for file in $(command ...)但這也是不好的做法,因為如果command輸出不是單個標記的文件名,它會中斷。)

試試這個代碼。 如果您遇到權限問題,請使用sudo su

echo "Deleting files with write permission"
for file in $(find -perm -222 -type f)
do
 rm $file
 done
echo "Files Deleted"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM