Moving file from deleted folder to its original path using bash should check for file existence with same name at original path
本问题已经有最佳答案,请猛点这里访问。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #!/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 ---------- |
(我已经编写了将文件从已删除文件夹移动到其原始路径的脚本,并且运行良好。但是现在我必须检查是否已经有一个同名的文件,然后它应该通知用户"Do u want to overwrite"(是否要覆盖);如果是,则覆盖;如果否,则覆盖;否则,不还原)
资料来源:http://tldp.org/ldp/bash-初学者指南/html/sect_07_01.html
1 2 3 4 5 6 7 | 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,则可以轻松添加一个else if,表示不移动;如果选择no,则可以添加另一个else,如果在第二个if中选择无效响应,则还可以添加另一个else。)
(不在我的机器前面,所以我不能测试它,但我很确定我的所有语法都是正确的。如果没有,请告诉我。)