Я пытаюсь следоватьэтот урок о том, как сделать vpn, но у меня возникли некоторые проблемы с застегиванием ружья.
Если я попытаюсь ввести код
sudo gunzip -c '/usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf'
он отвечает
gzip: /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf.gz: No such file or directory
Что происходит?
Я поставил sudo
кавычки, потому что без них gzip
нельзя etc
.
решение1
Кавычки поставлены неправильно.
Вместо этого запустите его так:
sudo gunzip -c '/usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz' > '/etc/openvpn/server.conf'
Как вы уже поняли, вся '/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'"