tar:無法開啟:沒有這樣的檔案或目錄

tar:無法開啟:沒有這樣的檔案或目錄

我正在嘗試按照說明進行操作這裡在 ubuntu 上安裝 Jetty 但當我嘗試使用 tar 時遇到問題。

cd /usr/local/src
sudo wget http://eclipse.org/downloads/download.php?file=/jetty/stable-9/dist/jetty-distribution-9.1.0.v20131115.tar.gz&r=1

但當我嘗試時

sudo tar -xfz etty-distribution-9.1.0.v20131115.tar.gz

我收到錯誤

tar: z: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now

我究竟做錯了什麼? (我也嘗試過以 root 身分但沒有幫助)


編輯

建議的答案都不適合我。下面我從命令列複製我的嘗試。我究竟做錯了什麼?

a@b:/usr/local/src$ ls
download.php?file=%2Fjetty%2F9.1.0.v20131115%2Fdist%2Fjetty-distribution-9.1.0.v20131115.tar.gz
download.php?file=%2Fjetty%2Fstable-9%2Fdist%2Fjetty-distribution-9.1.0.v20131115.tar.gz

a@b:/usr/local/src$ tar -tfz jetty-distribution-9.1.0.v20131115.tar.gz
tar: z: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now

a@b:/usr/local/src$ tar -tfz /usr/local/src/jetty-distribution-9.1.0.v20131115.tar.gz
tar: z: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now

a@b:/usr/local/src$ sudo tar xfz download.php?file=%2Fjetty%2F9.1.0.v20131115%2Fdist%2Fjetty-distribution-9.1.0.v20131115.tar.gz
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
a@b:/usr/local/src$ sudo tar xfz jetty-distribution-9.1.0.v20131115.tar.gztar (child): jetty-distribution-9.1.0.v20131115.tar.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
a@b:/usr/local/src$ ^C
a@b:/usr/local/src$ 

答案1

破折號的使用和參數的順序似乎是問題所在:

$ tar tfz foo.tar.gz
foo
$ tar -tfz foo.tar.gz
tar: z: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
$ tar -tzf foo.tar.gz
foo
$ tar --version
tar (GNU tar) 1.15.1

編輯:以下兩個命令似乎對我有用:

wget http://download.eclipse.org/jetty/stable-9/dist/jetty-distribution-9.1.0.v20131115.tar.gz
tar tzf jetty-distribution-9.1.0.v20131115.tar.gz

當然,您需要替換tar tzftar xzf,並且可能需要添加sudo

答案2

問題可能在於f論證的立場。存檔的名稱應該跟在f參數後面,這就是為什麼錯誤顯示無法打開名為z.

嘗試:

tar -tzf jetty-distribution-9.1.0.v20131115.tar.gz

答案3

該指令sudo wget http://eclipse.org/downloads/download.php?file=/jetty/stable-9/dist/jetty-distribution-9.1.0.v20131115.tar.gz&r=1錯誤有兩個原因:

  1. 由於您使用 Bash 中的特殊字元 &,因此需要引用下載連結。看http://www.gnu.org/software/bash/manual/bash.html#Definitions
  2. 您正在使用舊的無效連結。前往jetty的下載頁面(http://download.eclipse.org/jetty/) 表示http://eclipse.org/downloads/download.php?file=/jetty/stable-9/dist/jetty-distribution-9.1.3.v20140225.tar.gz&r=1為正確的下載連結。

從那時起,您必須使用以下命令:

sudo wget "http://eclipse.org/downloads/download.php?file=/jetty/stable-9/dist/jetty-distribution-9.1.3.v20140225.tar.gz&r=1" -O jetty-distribution-9.1.3.v20140225.tar.gz`

-O參數有助於輸出到正確的檔案名稱。

之後,tar xvf jetty-distribution-9.1.3.v20140225.tar.gz應該可以工作。

此處,選項x使用提取模式,v顯示更多資訊(正在提取的文件的名稱)並f指定以下參數是要提取的存檔的路徑。

您不需要z指示gzip壓縮存檔的選項,因為tar它會自動識別它。

最後,-據我所知,前面的選項已被棄用。

另一件事:我不建議sudo在不是真正需要的時候使用。在這裡,您只想下載並解壓縮存檔,不需要 root 權限,您可以在主目錄中執行此操作。它可以避免犯下可能導致嚴重問題的錯誤,尤其是當您並不真正知道自己在做什麼時。

答案4

我有同樣的問題,然後谷歌把我帶到這裡,現在問題解決了。一是關於檔案名稱的大寫字母,二是資料夾授權。將其更改為 777。

相關內容