mv:无法统计错误

时间:2015-12-04 15:08:31

标签: linux bash mv

mv:无法统计错误:没有此类文件或目录错误

这是我的错误

这是我的代码

#!/bin/sh
printf "change word from read \n"
read a
read b
mv ${a} ${b}
printf "${b}\n"

我该如何解决?

2 个答案:

答案 0 :(得分:2)

您尝试mv的文件不存在。

您可以通过以下方式检查它是否存在:

if [ ! -f "$a" ]
then
  echo "File $a does not exist"
  exit
fi

答案 1 :(得分:1)

我重写了一下你的脚本,检查文件是否存在,如果需要,将创建目录路径。您收到错误,因为文件不存在。 " MV"不会创建目录,因此您在其中输入的任何内容都必须是存在的目录路径。

所以,而不是原始版本:

#!/bin/sh
printf "change word from read \n"
read a
read b
mv ${a} ${b}
printf "${b}\n"

我建议如下:

#!/bin/bash
printf "change word from read \n"
read -r a
read -r b

if [[ ! -f ${a} ]] ; then
  echo "Unable to locate ${a}...Exiting"
  exit 2
fi

### If you are renaming a file, remove "if" statement below ###
if [[ ! -d ${b} ]] ; then
  echo "Directory does not exist...Creating ${b}"
  mkdir -p "${b}" 
fi

mv "${a}" "${b}"
exit