我正在尝试为UNIX创建一个回收站,所以我有两个脚本。 1删除文件并将其移动到bin,另一个脚本将文件恢复回原来的位置。
我的恢复脚本仅在此人提供已删除文件的路径时才有效。
ex:sh restore~ / trashbin / filename
如何硬编码到我的脚本中,以便我不需要提供它应该已经知道的已删除文件的路径,以查看文件的垃圾箱。我的恢复脚本仅在有人调用文件路径时才有效。
#!/bin/bash
rlink=$(readlink -e "$1")
rname=$(basename "$rlink")
function restoreFile() {
rlink=$(readlink -e "$1")
rname=$(basename "$rlink")
rorgpath=$(grep "$rname" ~/.restore.info | cut -d":" -f2)
rdirect=$(dirname "$rorgpath")
#echo $orgpath
if [ ! -d "$rdirect" ]
then
mkdir -p $rdirect
#echo $var
mv $rlink $rorgpath
else
mv $rlink $rorgpath
fi
}
if [ -z "$1" ]
then
echo "Error no filename provided."
exit 1
elif [ ! -f "$1" ]
then
echo "Error file does not exist."
exit 1
elif [ -f "$rorgpath" ]
then
echo "File already exists in original path."
read -p "Would you like to overwrite it? (y/n)" ovr
if [[ $ovr = y || $ovr = Y || $ovr = yes ]]
then
echo "Restoring File and overwriting."
restoreFile $1
grep -v "$rname" ~/.restore.info > ~/.restorebackup.info
mv ~/.restorebackup.info ~/.restore.info
fi
else
echo "Restoring file into original path."
restoreFile $1
grep -v "$rname" ~/.restore.info > ~/.restorebackup.info
mv ~/.restorebackup.info ~/.restore.info
fi
答案 0 :(得分:0)
当您将文件从文件系统“移除”到垃圾箱时,请将其移动以便记住其路径。示例:删除文件/home/user/file.txt
应该意味着将此文件移至~/.trash/home/user/file.txt
。这样,您就可以将文件还原到原始位置,并且您将自动完成工作,因为您可以执行以下操作:sh restore ~/.trash/<TAB><TAB>