如何告诉脚本只查看特定文件夹

时间:2016-03-21 14:38:18

标签: unix

我正在尝试为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

1 个答案:

答案 0 :(得分:0)

当您将文件从文件系统“移除”到垃圾箱时,请将其移动以便记住其路径。示例:删除文件/home/user/file.txt应该意味着将此文件移至~/.trash/home/user/file.txt。这样,您就可以将文件还原到原始位置,并且您将自动完成工作,因为您可以执行以下操作:sh restore ~/.trash/<TAB><TAB>