关于UNIX移动命令覆盖保护

时间:2010-02-25 03:20:10

标签: linux shell unix

从shell脚本transfer.sh

中粘贴了一段代码
        if [[ ${ld} -eq ${eld} ]] ; then
            mv "$file1" "$FILESNEW/."
            if [ $? -ne 0 ]; then
               echo "Move Command Failed-File ${fspec}"
            fi

            echo  "File ${fspec} Sucessfully Moved to ready directory "
        else
          echo "File ${fspec} line count mismatch: ${lc}/${elc}"
        fi

当我执行./transfer.sh move命令等待提示“覆盖保护y / n” 移动命令执行时,我不希望出现此提示。我怎么能摆脱它?

4 个答案:

答案 0 :(得分:1)

mv更改为mv -f

Man page for mv

但请记住,-f强迫它意味着不会提示您,以便您更好地确定您知道它将如何使用。

答案 1 :(得分:1)

使用mv -f。选项-f会覆盖任何提示(“强制”)。

  

-f, - force

do not prompt before overwriting

答案 2 :(得分:1)

尝试

   if [[ ${ld} -eq ${eld} ]] ; then
        mv -f "$file1" "$FILESNEW/"
        ....

答案 3 :(得分:0)

变化:

mv "$file1" "$FILESNEW/."

为:

/bin/mv "$file1" "$FILESNEW/."

(或您的机器上的mv位置)