我需要使用bash创建一个回收站代码。以下是我到目前为止所做的工作。我的问题是,当我将一个同名的文件移到垃圾桶文件夹中时,它只是覆盖了以前的文件。你能给我一些关于如何处理这个问题的建议吗?
#!/bin/bash
mkdir -p "$HOME/Trash"
if [ $1 = -restore ]; then
while read file; do
mv $HOME/Trash/$2 /$file
done < try.txt
else
if [ $1 = -restoreall ]; then
mv $HOME/Trash/* /$PWD
else
if [ $1 = -empty ]; then
rm -rfv /$HOME/Trash/*
else
mv $PWD/"$1"/$HOME/Trash
echo -n "$PWD" >> /$HOME/Bash/try
fi
fi
fi发布于 2011-06-15 19:21:35
您可以将删除时间的时间戳附加到回收站文件夹中的文件名上。在恢复时,您可以再次将其剥离。
发布于 2011-06-15 20:14:17
要将时间戳添加到文件中,请使用类似以下内容:
DT=$(date +'%Y%m%d-%H%M%S')
mv $PWD/"$1" "/$HOME/Trash/${1}.${DT}"例如,这将在移动initrd.img-2.6.28-11-generic时创建一个类似initrd.img-2.6.28-11-generic.20110615-140159的文件。
要获得原始文件名,请从最后一个点开始剥离所有内容,如:
NAME_WITHOUT_TIMESTAMP=${file%.*-*}模式在百分比字符之后的右侧。(.*也足以匹配。)
发布于 2011-06-21 08:20:49
看看trash-cli是如何做到的。它是用Python编写的,使用与桌面环境相同的回收站。Trash-cli至少在大型Linux发行版中是可用的。
https://stackoverflow.com/questions/6356896
复制相似问题