使用bash将文件从已删除文件夹移动到其原始路径应检查原始路径

时间:2017-10-15 19:06:11

标签: bash

#!/bin/bash
filename=../deleted/$1
#Testing condition before deletion of file
if [ "$1" = "" ] ; then
echo "No filename provided"
elif [  -f "../deleted/$1"  ] ; then
echo "File doesnot exist"
str=$(fgrep "$1" ../.restore.info | cut -d ":" -f2)
path=${str%/*}
mv "../deleted/$1" "${path}"
newname=$(fgrep "$1" ../.restore.info | cut -d "_" -f1)
mv -i "$1" "${newname}"
else
echo "file does not exist"
fi
----------

(我已编写脚本将文件从已删除的文件夹移动到其原始路径并且工作正常。但是现在我必须检查是否已存在具有相同名称的文件然后它应该给警报用户“你想要覆盖“如果是,则覆盖,如果没有或其他任何东西,然后不恢复)

1 个答案:

答案 0 :(得分:0)

来源:http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html

if [[ -e "$newname" ]]; then
   read -p "Overwrite? [y,N]" overwrite

   if [[ "$overwrite" = [Y,y] ]]; then
      mv -i "$1" "${newname}"
   fi
fi

-e标志只会检查它是否存在。 (您可以像上面那样使用-f或-r查看它是否存在且可读。)read命令将提示用户在引号之间添加文本并将其存储在变量中。最后一个if只会在输入Y或y时移动文件。 (我没有包含它,但你可以轻松地添加一个其他如果说如果他们选择no则不会移动,如果你在第二个if中选择,则还有一个无效响应的其他。)

(不在我的机器前面,所以我无法测试它,但我很确定我的所有语法都是正确的。如果不是,请告诉我。)