2017-08-09 115 views
0

我有一個Bash腳本,可以自動創建一些SVN文件夾。在這樣做的過程中,它會創建一個臨時目錄。當我嘗試刪除臨時目錄與室射頻命令,我收到以下錯誤...rm:無法刪除'-rf':沒有這樣的文件或目錄

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

它似乎認爲「-rf」是一個文件名。該命令在命令行上正常工作。

這裏是我的腳本...

#!/bin/bash 

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

else 
    for var in "[email protected]" 
    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://[email protected]/home/username/svnrepos/$REPONAME -m "Initial structure" 

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

這裏是輸出

$ ./mkrepo.sh mysvnrepo 
[email protected]'s password: 
[email protected]'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 

回答

8

您管理輸入一個Unicode 「EN DASH」(U + 2013),這是不認可rm作爲一個正常的連字符「 - 」(U + 002D)所以rm認爲它是一個文件名的開始,而不是你的參數。它們看起來很像,但對於一個程序來說它們並不相同。要修復它,只需擦除並再次輸入,確保您使用正常的連字符/減號鍵。

+0

我替換了破折號字符,解決了問題。我不知道如何插入其他短跑,因爲我的鍵盤只有一個短劃線鍵。謝謝您的幫助。 –

0

rm –rf中腳本中的' - '不是它所期望的。 正確的是rm -rf

我希望你能發現差異。

rm –rf rm -rf

相關問題