2013-09-16 138 views
0

所以得到這個。我一直在使用./something.sh運行我的腳本,並且將something.sh運行了大約3個月。這些腳本始終從我啓動它們的目錄運行。腳本始終從當前目錄運行/而不是當前目錄

現在突然間我的腳本無法工作,因爲它們似乎是從/而不是當前目錄啓動的。例如可以說,我的劇本是這樣的:

cd players 

rm * 

而不是去到球員它的錯誤,因爲它無法找到該文件夾​​「的玩家」,然後嘗試刪除整個根文件系統。 (對我來說幸運的是,我不會將這些作爲Sudo或Root來運行)。

任何想法?這是以前的工作,現在剛開始行動起來!

謝謝!

+1

你在哪裏運行腳本? – matcheek

+4

你應該立即做的是把你的腳本改成'rm players/*'。之後嘗試解決這個問題。 – mnagel

+4

mnagel是對的。但是更好地使用完整路徑:'rm/path/to/players/*' –

回答

1

試試這個:

cd ./players 

rm * 

應該達到預期效果!

+0

我會試試這個,如果它有效,我會嘗試rm播放器/ * 任何想法什麼可能改變? ''' – Linux4Hope

+0

'。'這裏指的是當前的工作目錄,在你的情況下缺少它。 – Swashbuckler

+0

'cd'已經將相對路徑視爲相對於當前工作目錄。如何明確添加'。/'幫助? – chepner

2

爲安全起見,您可以更改一行

cd players && rm * 

它只會刪除players的內容,如果它能夠成功地改變它。

0

我只能猜測你的腳本現在是以不同的方式啓動的;我能想到的最可能的是他們被一個沒有主目錄(不再有)或類似用戶的cron作業調用。

但這真的是在黑暗中的一槍。我建議更多地考慮您的腳本如何開始並就此主題進行調查。

+0

我希望我能說我確實改變了我如何開始他們,但我沒有。 :( – Linux4Hope

+0

有些東西已經改變了,你可以通過描述你如何開始腳本來幫助找到答案,然後我可以更多地受到關於什麼(更新,用戶數據庫的變化,網絡訪問的變化......)已經造成的猜測這個情況。 – Alfe