#!/bin/bash
# 设置回收站目录和日志文件
TRASH_DIR="$HOME/.trash"
LOG_FILE="$HOME/.trash_log"
# 检查回收站目录是否存在,不存在则创建
if [ ! -d "$TRASH_DIR" ]; then
mkdir -p "$TRASH_DIR"
fi
# 移动文件或目录到回收站,并记录日志
for item in "$@"; do
if [ -e "$item" ]; then
# 获取文件或目录的基本名称和路径
base=$(basename "$item")
dir=$(dirname "$item")
# 构建在回收站中的新路径
timestamp=$(date +%Y%m%d%H%M%S)
dest="$TRASH_DIR/${timestamp}_${base}"
# 记录日志:原始路径 -> 新路径
echo "$item -> $dest" >> "$LOG_FILE"
# 移动文件或目录到回收站
if [ -d "$item" ]; then
mv "$item" "$dest"
else
cp "$item" "$dest" && rm "$item"
fi
echo "Moved $item to $dest"
else
echo "Error: $item does not exist"
fi
done
在这个脚本中LOG_FILE
变量来指定日志文件的路径。在每次移动或复制文件到回收站时,都会将原始路径和新路径记录到日志文件中。这样,在需要恢复文件时,就可以查阅$HOME/.trash_log来找到文件的原始位置。