Linux mv:无法统计错误

Linux mv:无法统计错误,linux,bash,mv,Linux,Bash,Mv,mv:无法统计错误:没有此类文件或目录错误 这是我的错误 这是我的密码 #!/bin/sh printf "change word from read \n" read a read b mv ${a} ${b} printf "${b}\n" 如何解决此问题?您试图复制的文件不存在 您可以通过以下方式检查它是否存在: if [ ! -f "$a" ] then echo "File $a does not exist" exit fi 您试图删除的文件不存在 您可以通过以下方式检查

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

这是我的错误

这是我的密码

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

如何解决此问题?

您试图复制的文件不存在

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

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

您试图删除的文件不存在

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

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

我重写了您的脚本,以检查文件是否存在,以及是否会在需要时创建目录路径。您收到错误是因为文件不存在。“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

我重写了您的脚本,以检查文件是否存在,以及是否会在需要时创建目录路径。您收到错误是因为文件不存在。“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

您输入的第一个输入(
read a
)应该是现有文件的名称-似乎找不到它。您为
a
输入的字符串是否命名了现有文件?此外,如果
b
是一个路径而不仅仅是一个简单的名称,则所有目录都必须已经存在
mv
不创建目录。您输入的第一个输入(
read a
)应该是现有文件的名称,而且似乎找不到。您为
a
输入的字符串是否命名了现有文件?此外,如果
b
是一个路径而不仅仅是一个简单的名称,则所有目录都必须已经存在
mv
不创建目录。如果我想用
mv
重命名我的文件,该怎么办?如果他试图重命名他的文件,那么他可以删除第二个“If”语句……尽管他只能重命名文件并将其移动到已创建的目录中。我将更新我的答案,包括删除第二个if语句的注释。我建议添加一个检查,确保a和b不为空,并在变量上始终加上引号
if[!-f“${a}]”]
如果我想用
mv
重命名我的文件,那又如何?如果他试图重命名他的文件,那么他可以删除第二个“if”语句…尽管他只能重命名文件并将其移动到已创建的目录中。我将更新我的答案,以包括删除第二个if语句的注释。我建议添加一个检查,确保a和b不为空,并在变量上始终加引号
if[[!-f“${a}”]