Ошибка wget -output-document = при наличии символа ~

Я пишу документацию, поэтому предпочитаю использовать длинные варианты, потому что это самоописание. --output-document= более читабельна, чем его короткий эквивалент -O .

Затем я должен указать файл в домашнем каталоге, но символ ~ не удался, когда я пытаюсь --output-document=~/.vimrc .

Мне действительно нужно использовать длинный вариант, но мне также нужно указать путь, который автоматически содержит домашний каталог.

Итак, есть решение, которое не использует синтаксис, например /home/<your name>/ ?

3 Solutions collect form web for “Ошибка wget -output-document = при наличии символа ~”

Расширение Тильды работает только в начале слова. (По крайней мере, в bash, например, https://www.gnu.org/software/bash/manual/html_node/Tilde-Expansion.html )

Вы можете использовать, скажем --something=$HOME/filename если вам нужно только обратиться к домашнему каталогу текущего пользователя. Поскольку --output-document принимает обязательный аргумент, также записывает аргумент в отдельный параметр, но для необязательных аргументов он не работает (*), поэтому вы, вероятно, хотите использовать формат --foo=bar обычно ,

Если контекст является документацией, может быть полезно, по крайней мере, упомянуть соответствующие короткие варианты, так как они короче, чтобы писать, и ваши читатели могут наткнуться на них в коде, написанном другими в любом случае. Особенно для обычных опций, таких как wget -O .

(* Например, попробуйте ls --color=auto vs ls --color auto . Я сказал «похоже», так как самое непосредственное упоминание об этом я могу найти – это справочная страница командной строки getopt , библиотечная документация не так ясно.)

Насколько я знаю, «=» не должно быть …

 wget --option-document ~/.vimrc 

Я не буду использовать в документации, а не «в гневе», но если вы действительно хотите тильду, вы можете сделать любой из

 VAR=~/.vimrc; wget ... --output-document="$VAR" unset VAR # to keep things tidy # or put in ( subshell ) to keep pre-existing VAR # quotes only needed if $HOME (or anything you substitute for .vimrc) # can contain whitespace or glob characters ?*[ which is pretty rare wget ... --output-document="$(echo ~/.vimrc)" # or if $HOME can begin with - or contain backslash, also pretty rare: wget ... --output-document="$(printf '%s\n' ~/.vimrc)" # both times quotes as above 
  • wget с подстановочными знаками при загрузке http
  • wget захватывает пустые файлы, которые фактически существуют
  • Зачем использовать Wget вместо браузера?
  • Как загрузить все файлы, связанные с веб-сайтом с помощью wget
  • wget --spider: как определить, где неработающие ссылки происходят из
  • Как загрузить все изображения из темы форума с помощью wget
  • Могу ли я захватить и отправить запросы GET с помощью wget?
  • Проблема с загрузкой Java JDK с помощью WGET на Ubuntu
  • инструмент командной строки для одной загрузки торрента (например, wget или curl)
  • Как может отсутствовать --compression в моем wget?
  • Как получить wget для использования имени прямого URL-файла в качестве имени выходного файла для сокращенного URL-адреса
  • Linux и Unix - лучшая ОС в мире.