我有一个Bash脚本可以自动创建一些SVN文件夹。在这样做的过程中,它会创建一个临时目录。当我尝试使用 rm -rf 命令删除该临时目录时,出现以下错误...
#!/bin/bash
if [ $# -lt 1 ]; then
echo "Usage: $0 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
似乎认为" -rf"是文件名。该命令在命令行上正常工作。
这是我的剧本......
$ ./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
这是输出
List<Product>
答案 0 :(得分:9)
您设法输入了一个unicode&#34; EN DASH&#34;(U + 2013),rm
无法将其识别为普通连字符&#34; - &#34;(U + 002D) )所以rm
认为它是文件名的开头,而不是你的参数。它们看起来很相似,但它们对于一个程序来说并不相同。要修复它,只需将其擦除并再次输入,确保使用正常的连字符/减号键。
答案 1 :(得分:1)
rm –rf
中脚本中的“ - ”不是它所期望的那个。
正确的是rm -rf
。
我希望你能发现差异。
rm –rf
rm -rf