2013-07-13 47 views
1

如何檢查某個文件(用戶選擇)是否存在於某個地方?如何檢查Unix中的文件存在?

$org是我選擇要設置的路徑

if [ -e $org/$1] 
then 
echo "Do you want to overwrite" 
exit 1 

可變難道我使用if語句或getopts的?如果

+1

你的語法不正確。 '$ org/$ 1'和']'之間應該有一個空格。正確的形式是'if [-e $ org/$ 1]'。看看我的答案。 – Random

回答

2

-f檢查路徑存在並且是文件

-d檢查的路徑存在且是一個目錄

+0

這是我創建回收站的bash腳本的一部分, 這個語法正確嗎? if [-e $ org/$ 1] $ org是文件最初存在的位置。我這樣做,所以如果用戶正在嘗試恢復文件,並且原始目的地中有一個文件具有相同的名稱,我想問用戶'是否要覆蓋?' – Tom

+0

值得注意的是'-f'只能檢測普通文件。它不會檢測設備文件或命名管道等特殊文件。它也不匹配死符號鏈接。 –

2

應該有$org/$1]之間的空間。

試試這個:

if [ -e "$org/$1" ]; then 
    echo "Do you want to overwrite" 
fi 

點擊此處瞭解詳情:http://tldp.org/LDP/abs/html/fto.html

+0

我想我在寫這個答案時誤解了你的問題。我對getopts並不熟悉,但在簡單情況下,帶'-e「$ org/$ 1」'的if語句正常工作。 – Random