首頁 > 軟體

Shell指令碼遞回刪除空資料夾

2020-06-16 18:09:23

有時我們需要遞回刪除空資料夾,網上找了一下,沒有發現比較好的Shell指令碼,於是自己動手寫了一個

指令碼

#!/bin/bash
# author: 十年後的盧哥哥(http://www.linuxidc.com/https://www.linuxidc.com/Linux/2015-02/)
# des: delete empty directories recursive
deleteempty(https://www.linuxidc.com/Linux/2015-02/) {
    find ${1:-.} -mindepth 1 -maxdepth 1 -type d | while read -r dir
    do
        if [[ -z "$(find "$dir" -mindepth 1 -type fhttps://www.linuxidc.com/Linux/2015-02/)" ]] >/dev/null
        then
            echo "$dir"
            rm -rf ${dir} 2>&- && echo "Empty, Deleted!" || echo "Delete error"
        fi
        if [ -d ${dir} ]
        then
            deleteempty "$dir"
        fi
    done
}

deleteempty

指令碼的內容很簡單,就是遍歷目錄,找出空資料夾,然後刪除。

使用

假如指令碼檔案為dedr.sh,我們測試的檔案結構為:

執行指令碼:

# sh dedr.sh

刪除的檔案:

結果:

我們可以看到空資料夾已經被刪除了。


IT145.com E-mail:sddin#qq.com