rm: 无法删除 '–rf': 没有那个文件或目录

rm: cannot remove '–rf': No such file or directory

我有一个 Bash 脚本可以自动创建一些 SVN 文件夹。在此过程中,它会创建一个临时目录。当我尝试使用 rm -rf 命令删除该临时目录时,出现以下错误...

rm: cannot remove '–rf': No such file or directory

似乎认为“-rf”是一个文件名。该命令在命令行上运行良好。

这是我的脚本...

#!/bin/bash

if [ $# -lt 1 ]; then
  echo "Usage: [=11=] reponame1 reponame2 ..."

else
  for var in "$@"
  do
      REPONAME=$var

      mkdir -p ~/temp-$REPONAME/branches
      mkdir ~/temp-$REPONAME/tags
      mkdir ~/temp-$REPONAME/trunk

      svnadmin create $REPONAME
      svn import ~/temp-$REPONAME svn+ssh://username@192.168.123.234/home/username/svnrepos/$REPONAME -m "Initial structure"

      rm –rf ~/temp-$REPONAME/
  done
fi

这是输出

$ ./mkrepo.sh mysvnrepo
username@192.168.123.234's password:
username@192.168.123.234's password:
Adding         /home/username/temp-mysvnrepo/branches
Adding         /home/username/temp-mysvnrepo/tags
Adding         /home/username/temp-mysvnrepo/trunk
Committing transaction...
Committed revision 1.
rm: cannot remove '–rf': No such file or directory
rm: cannot remove '/home/username/temp-mysvnrepo/': Is a directory

您成功输入了 unicode "EN DASH"(U+2013),rm 无法将其识别为普通连字符“-”(U+002D),因此 rm 认为它是文件名的开头而不是您的参数。它们看起来确实很像,但对于一个程序来说它们是不一样的。要修复它,只需将其擦除并再次键入,确保您使用的是正常的 hyphen/minus 键。

rm –rf 脚本中的“-”不是它所期望的。 正确的是rm -rf

希望您能看出其中的不同。

rm –rf rm -rf