centos

CentOS回收站备份方法

小樊
45
2025-09-28 15:57:37
栏目: 智能运维

CentOS系统回收站备份方法

一、CentOS回收站的基本概念

CentOS系统本身没有类似Windows的传统回收站,但通过用户目录下的.local/share/Trash目录实现类似功能:删除的文件默认存储在~/.local/share/Trash/files/(文件)和~/.local/share/Trash/info/(删除信息)中,便于后续恢复。

二、手动备份回收站的具体步骤

1. 定位回收站目录

2. 使用tar命令打包备份

通过tar命令将回收站目录压缩为归档文件,便于存储和传输:

# 进入回收站上级目录(以root用户为例)
cd /root/.local/share/Trash/

# 打包files目录(包含所有删除的文件)
sudo tar -czvf trash_backup_$(date +%Y%m%d).tar.gz files/

3. 使用rsync命令同步备份

rsync适合增量备份(仅同步变化的文件),节省时间和存储空间:

# 创建备份目标目录(如/data/backup/trash)
sudo mkdir -p /data/backup/trash

# 同步回收站files目录到目标目录
sudo rsync -avz ~/.local/share/Trash/files/ /data/backup/trash/

三、自动化备份设置(定时任务)

通过crontab设置定期自动备份,避免手动操作遗漏:

# 编辑当前用户的crontab文件
crontab -e

添加以下内容(每天凌晨2点备份普通用户的回收站):

0 2 * * * tar -czvf /data/backup/trash_$(date +\%Y\%m\%d).tar.gz ~/.local/share/Trash/files/ >/dev/null 2>&1

四、扩展:增强回收站功能的脚本(可选)

通过自定义脚本模拟Windows回收站的“移动-恢复”流程,提升易用性:

1. 创建回收站目录

# 创建全局回收站目录(如/data/trash)
sudo mkdir -p /data/trash
sudo chmod 700 /data/trash

2. 编写trash.sh脚本(移动文件到回收站)

vim /bin/trash.sh

添加以下内容:

#!/bin/bash
TRASH_DIR="/data/trash"
if [ ! -d "$TRASH_DIR" ]; then
    mkdir -p "$TRASH_DIR"
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

赋予执行权限:

sudo chmod +x /bin/trash.sh

3. 替换默认rm命令

编辑~/.bashrc文件,添加别名:

alias rm='/bin/trash.sh'

使别名生效:

source ~/.bashrc

此后,使用rm命令将自动将文件移动到/data/trash目录,而非直接删除。

注意事项

0
看了该问题的人还看了