2012-05-19 249 views
3

因此,我試圖檢查一個文件是否存在,然後該腳本應該做一些事情,如果是的話。我遇到的問題實際上是讓它認識到事實確實存在。檢查文件是否存在Linux bash

if [ -e /temp/file.txt ]; then 
     echo "file found!" 
     sudo cp -r temp/* extra 
else 
     echo "file not found! Creating new one..." 
     ./create.sh 
fi 

下面是我正在測試的目錄中的文件的示例。他們顯然存在,但由於某種原因,我無法看到腳本。我究竟做錯了什麼?

[email protected]:/docs/text$ ls -a temp 
. .. more file.txt file2.txt 

回答

11

您正在使用,而你應該使用相對路徑測試中的絕對路徑:

if [ -e ./temp/file.txt ]; then 
+0

看來我是沒有正確拼寫的目錄。 thx無論如何幫助:P – Painguy

2

/temp/file.txt VS /docs/text/temp/file.txt

1

你的腳本看起來/temp,而你正在尋找在/docs/text/temp