2012-02-13 18 views
1

我想刪除以前創建的文件,名爲a\如何使用exec在Linux上刪除文件

我試着使用:

1)

rm -rf a\\ 

2)

rm -rf a\\/ 

但兩者都沒有工作。我試圖登錄到終端,但我無法刪除。我寫了a,然後點擊tab,它顯示a\\/,但它仍然不起作用。無論從終端。我得到:

sudo rm -rf a\\/ 
rm: cannot remove `a\\': Operation not permitted 

有什麼建議嗎?

+1

類型'了'和'按鍵TAB' - 讓外殼爲你做它。 – hsz 2012-02-13 11:27:59

+2

「不允許操作」表示您沒有刪除文件的權限。以root身份或擁有該文件的用戶身份執行此操作。 – geoffspear 2012-02-13 11:28:19

+0

hsz請閱讀問題。我按了標籤按鈕。 – glarkou 2012-02-13 11:31:23

回答

0

你應該在你的php代碼中使用exec("rm -rf a\\\\");

PHP使用\\逃脫\和系統使用相同的,所以你需要逃避\兩次

0

你應該嘗試使用任何/path/to/file./a\\指定文件的完整路徑。逃跑的東西已經被解釋了。

3

我假設你使用Ubuntu由於sudo?

首先確保你是在同一個目錄中您要刪除的文件,這樣做有:

print(getcwd()); 

其次嘗試改變文件的所有者您正試圖刪除到www數據(或apache取決於你的服務器),然後看看你是否可以從PHP腳本中刪除該文件。

如果這個工作,那麼你有問題是權限相關。

有很多方法可以解決這個問題。

  1. 確保您正在刪除的文件屬於Web服務器進程(最安全)。
  2. 授予文件777權限,以便任何用戶都可以刪除它們。
  3. Web服務器用戶添加到sudoers文件(在/ etc/sudoers文件)(安全性最低)