gunzip 重定向到 /etc/: 没有那个文件或目录

ics*_*laf 3 gzip

我正在尝试按照有关如何制作 vpn 的教程进行操作,但是在进行压缩时遇到了一些麻烦。

如果我尝试输入代码

sudo gunzip -c '/usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf'
Run Code Online (Sandbox Code Playgroud)

它以

gzip: /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf.gz: No such file or directory
Run Code Online (Sandbox Code Playgroud)

到底是怎么回事?

我把sudo和引号,因为你不能gzipetc没有它。

Byt*_*der 6

您的引号放置不正确。

像这样运行它:

sudo gunzip -c '/usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz' > '/etc/openvpn/server.conf'
Run Code Online (Sandbox Code Playgroud)

正如您所拥有的那样,整个'/usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf'部分都被视为单个参数 - 当然不存在具有此路径的文件。

现在它被拆分为gunzip命令 ( /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz') 的一个带引号的路径参数,然后是 Bash 输出重定向到'/etc/openvpn/server.conf'.

但是,由于示例中的两个路径都不包含空格或其他特殊字符,因此引号不是必需的,也可以完全省略。


正如您所说,您对要将输出重定向到的文件没有写权限,您必须这样写:

sudo bash -c "gunzip -c '/usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz' > '/etc/openvpn/server.conf'"
Run Code Online (Sandbox Code Playgroud)