溫馨提示×

Linux下回收站占用空間大

小樊
44
2025-07-02 08:23:31
欄目: 云計算

在Linux系統中,通常沒有一個像Windows那樣的內置回收站功能。然而,可以通過創建一個自定義的回收站目錄并使用腳本和命令行工具來模擬回收站的行為。如果發現這個回收站占用了大量磁盤空間,可以按照以下步驟進行清理:

創建自定義回收站目錄

在用戶的主目錄下創建一個名為 .trash 的隱藏文件夾,用于存放被刪除的文件和目錄。

mkdir ~/.trash

編寫回收站腳本

編寫一個名為 trash 的 Shell 腳本,替代系統默認的 rm 命令。這個腳本的作用是將用戶想要刪除的文件移動到回收站目錄,并為文件添加時間戳以防止重名。

#!/bin/bash
TRASH_DIR="$HOME/.trash"
if [ ! -d "$TRASH_DIR" ]; then
    mkdir -p "$TRASH_DIR"
fi
if [ $# -eq 0 ]; then
    echo "Usage: $0 file_or_directory"
    exit 1
fi
for FILE in "$@"; do
    if [ -e "$FILE" ]; then
        TIMESTAMP=$(date +%Y%m%d%H%M%S)
        BASENAME=$(basename "$FILE")
        NEW_NAME="$BASENAME-$TIMESTAMP"
        mv "$FILE" "$TRASH_DIR/$NEW_NAME"
    else
        echo "'$FILE' does not exist!"
    fi
done

將該腳本保存為 /bin/trash,并賦予其可執行權限:

chmod +x /bin/trash

為了方便使用,可以將系統默認的 rm 命令通過別名替換為 trash 腳本。編輯 ~/.bashrc~/.zshrc 文件,添加以下內容:

alias rm='/bin/trash'

更新終端配置后,用戶可以像往常一樣使用 rm 命令“刪除”文件,例如:

rm myfile.txt

此操作將文件 myfile.txt 移動到 ~/.trash 目錄,并在文件名后添加時間戳以避免重名沖突。

清理回收站

手動清空回收站

使用以下命令清空回收站中的所有文件和文件夾:

rm -rf ~/.local/share/Trash/files/*
rm -rf ~/.local/share/Trash/info/*

使用圖形界面清空回收站

大多數文件管理器(如 Nautilus、Dolphin 等)都提供“清空回收站”選項。

使用命令行工具清空回收站

某些 Linux 發行版提供了命令行工具來管理回收站。例如,在 Ubuntu 上,可以使用 trash-cli 包中的 trash-empty 命令來清空回收站:

# 安裝 trash-cli 包(如果尚未安裝)
sudo apt-get install trash-cli

# 清空回收站
trash-empty

設置自動清理

為了防止回收站占用過多的磁盤空間,可以編寫一個腳本定期清理回收站中過期的文件。例如,可以刪除超過 30 天的文件:

#!/bin/bash
TRASH_DIR="$HOME/.trash"
find "$TRASH_DIR" -type f -mtime +30 -exec rm -f {} \;
echo "Trash cleaned up."

將該腳本保存為 /bin/clean_trash.sh,并賦予其可執行權限:

chmod +x /bin/clean_trash.sh

為了讓清理任務自動化執行,可以將此腳本添加到 crontab 中,例如每天運行一次:

(crontab -l ; echo "0 0 * * * /bin/clean_trash.sh") | crontab -

通過以上步驟,可以在 Linux 系統中實現一個簡單且實用的回收站功能,并設置了自動清理過期文件的機制。這種方法不僅提高了誤刪文件的恢復能力,還能有效管理磁盤空間。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女