2014-01-15 147 views
0

據我所知,它進入一個目錄並遞歸併強制刪除./tmp。我的問題是與「-d ./tmp」。 -d做什麼,爲什麼「./」會在tmp前面?有人可以向我解釋這個shell腳本中發生了什麼嗎?

在此先感謝

cd $WORKING_DIR 

if [ -d ./tmp}; then 
     rm -rf ./tmp 
fi 
+2

-1:至少要努力確保您的代碼示例不包含明顯的語法錯誤。 –

+0

如果你要給rm加上'-f'標誌,檢查這個東西是否存在有什麼意義?我想這只是針對奇怪的角落情況,其中'。/ tmp'實際上是一個文件或套接字或其他東西...仍然... – twalberg

回答

1

它檢查./tmp是否存在,是否是一個目錄。在這種情況下,它會將其刪除。

man test

-d FILE

FILE存在且是一個目錄


順便說一句,語法有錯誤:

if [ -d ./tmp}; then 
      ^
      needs space and ] instead of } 

正確:

if [ -d ./tmp ]; then 
相關問題