簡體   English   中英

遍歷目錄並刪除文件

[英]looping through directories and remove files

如果路徑 /home/*/.ssh/authorized_keys 存在,我想遍歷主文件夾並驗證。 如果它存在,我想刪除用戶的文件 .../.ssh/disabled_authorized_keys ,該文件已經在他的主文件夾中包含了 authorized_keys 文件。

到目前為止,我已經創建了這個腳本,但它會刪除所有 disabled_authorized_keys,而不僅僅是擁有authorized_keys 的用戶。

 for i in /home/*/.ssh/authorized_keys;
 do ii=`echo $i|awk -F '/' '{print $3}'` ;
 rm /home/$ii/.ssh/disabled_authorized_keys;
 done

先感謝您。 (我絕對是 bash 腳本的初學者!)

嘗試這個:

for path in /home/*/.ssh/authorized_keys; do
    rm "$(dirname "$path")"/disabled_authorized_keys
done

如果disabled_authorized_keys不存在,它會在 stderr 上抱怨,但不會“崩潰”。

更多關於dirname

for dir in /home/*/.ssh; do
    [[ -e $dir/authorized_keys ]] && rm "$dir/disabled_authorized_keys"
done

[[ -e file ]]檢查file存在。 &&讀作“if-then”。

暫無
暫無

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

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