在unix中使用bash恢复已删除的文件

时间:2017-03-16 20:56:06

标签: linux bash shell ubuntu unix

晚上好

我有一项任务要完成并尝试以下但不起作用

#!/bin/bash

FPath=$(grep $1 $HOME/.restore.info | cut -d":" -f2)
FName=$(grep $1 $HOME/.restore.info | cut -d":" -f1)
if [ $# -eq 0 ]
then
        echo "No input detected"
        exit $?

elif [ "$FName" = $1 ]
then
        echo " Match found and restored to its original location"
        mv ~/deleted/$1 $FPath
else
        echo "File does not exist"
        exit $?
fi

它应该将特定文件夹中的已删除文件还原到其原始位置

然而,它仍然说文件不存在,即使该文件存在。

我还需要为现有文件创建一个案例,如果用户选择覆盖现有文件。请帮我这个

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

如果$FPath确实为0,

$FName$#将进入无限等待状态,这意味着它永远不会到达其余的行。

如果你有这个照顾: 忽略你的grep中的case: grep -i $1 $HOME/.restore.info | cut -d":" -f2

如果$ 1有多个条目,则捕获grep中的第一个匹配项 grep -i $1 $HOME/.restore.info | cut -d":" -f2 | head -1