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。希望有帮助。

相关内容