2014-06-12 106 views
2

的目錄,我有以下bash腳本:cd命令沒有看到在bash

#!/bin/bash 
run_python(){ 
    cd "`dirname $1`" 
    python "`basename $1`" $2 >test.log 
} 

crypto_util=/home/dev/src/crypto/util.py 
run_python $crypto_util "testpassword" 

不知何故cd命令失敗,他說:

CD:/家庭的/ dev/src目錄/加密沒有這樣的文件或目錄。我很確定該目錄存在。

在一個側面說明,如果我這樣做失敗過:

run_python(){ 
    python "$1" $2 >test.log 
} 

說Python不能打開文件/home/dev/src/crypto/util.py因爲沒有這樣的文件。

任何想法爲什麼?

這裏是ll命令對目錄/文件輸出:

drwxr--r--. 2 dev root 4096 Jun 11 18:56 crypto 

-rwxr--r--. 1 dev root 4934 Jun 9 10:50 util.py 

LS的輸出-llid /家庭/

654084 drwxr-xr-x. 4 root root 4096 May 8 10:52 /home 

輸出LS的-lid /家庭的/ dev/LS的

924265 drwxr--r--. 4 dev root 4096 Jun 9 09:17 /home/dev/ 

輸出-lid /家庭的/ dev/src目錄/:

924266 drwxr--r--. 9 dev root 4096 Jun 9 10:01 /home/dev/src/ 

LS的輸出-lid /家庭的/ dev/SRC /密碼:

924333 drwxr--r--. 2 dev root 4096 Jun 11 18:56 /home/dev/src/crypto/ 

LS的輸出-lid /家庭的/ dev/SRC /加密/ util.py:

924337 -rwxr--r--. 1 dev root 4934 Jun 9 10:50 /home/dev/src/crypto/util.py 
+1

你可以做一個ls/home/dev/src/crypto併發布輸出嗎? – CDahn

+2

@Jake我不這麼認爲。在另一個問題中,海報認爲它不起作用,但它是。在這裏,海報實際上是一個錯誤。我想知道如果目錄權限是錯誤的,防止目錄遍歷。 – CDahn

+0

@CDahn好點。 – JakeGould

回答

2

其中一些dirs沒有設置x權限位 - 這些是進入目錄所需要的。您的問題可能是您的腳本與另一個用戶一起運行,而不是「dev」。 dev是唯一允許更改爲這些目錄的用戶。 將目標設置爲+ x,然後重試。

+0

沒有我的電腦很方便嘗試,一些搜索確定你可以在沒有設置執行位的情況下進行搜索。所以,這似乎是最可能的解釋。如果@Arunav發佈id命令的輸出,那肯定會證實它。 – CDahn