linux

Linux回收站如何自定义

小樊
45
2025-05-18 18:53:08
栏目: 智能运维

在Linux系统中,回收站并不是像Windows那样内置的功能,但可以通过一些方法来实现类似的效果。以下是几种常见的方法来设置Linux系统的回收站功能:

使用 .trash 目录

#!/bin/bash
TRASH_DIR="$HOME/.trash"

if [ ! -d "$TRASH_DIR" ]; then
    mkdir -p "$TRASH_DIR"
fi

if [ "$#" -eq 0 ]; then
    echo "Usage: rm file1 [file2 file3...]"
    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"
        echo "$file is deleted!"
    else
        echo "'$file' does not exist!"
    fi
done
alias rm='/bin/trash.sh'

使用 trash-cli 工具

sudo apt-get install trash-cli  # Debian/Ubuntu
sudo yum install trash-cli      # CentOS/RHEL

使用脚本

#!/bin/bash
TRASH_DIR="/.local/share/Trash/files"
INFO_DIR="/.local/share/Trash/info"

if [ "$#" -eq 0 ]; then
    echo "Usage: trash file1 [file2 ...]"
    exit 1
fi

for file in "$@"; do
    if [ -e "$file" ]; then
        mv "$file" "$TRASH_DIR"
        echo "[$(date +%Y-%m-%d-%H:%M:%S)] $file" > "$INFO_DIR/${file#*.}"
        echo "Path: $file" >> "$INFO_DIR/${file#*.}"
        echo "DeletionDate: $(date +%Y-%m-%d-%H:%M:%S)" >> "$INFO_DIR/${file#*.}"
        echo "Deleted" >> "$INFO_DIR/${file#*.}"
    else
        echo "File not found: $file"
    fi
done

使用图形界面工具

通过上述方法,用户可以在Linux系统中实现一个简单且实用的回收站功能,并设置自动清理过期文件的机制。这种方法不仅提高了误删文件的恢复能力,还能有效管理磁盘空间。

0
看了该问题的人还看了