Что “~ /” каталог?

Возможно, не программируя связанный, но я хочу сослаться на этот каталог в c программе.

Я думал, что это - $HOME, но когда я сбросил $HOME, я могу все еще CD ~ / в ударе.

Это - также не $USER's домой, так как я могу быть корнем с ПОЛЬЗОВАТЕЛЕМ = "другой", но “~ /" неподвижная точка к "/корень".

таким образом, как удар объясняет это "~ /"?.

6
задан 17.09.2009, 12:03

5 ответов

Возможно, не программируя связанный, но я хочу сослаться на этот каталог в c программе.

При попытке к opendir строкового литерала "~ /" в C Вы найдете, что он не существует. Это - краткая нотация Bash/Csh, которая расширена оболочкой до корневого каталога. Это не существует как таковое в файловой системе и таким образом, программа C перестанет работать - если это не вызовет Bash, например, и позволяет Bash разворачивать строку.

2
ответ дан 07.12.2019, 15:30

Используя домашнюю информацию о dir от/etc/passwd (6-е поле).

15
ответ дан 07.12.2019, 15:30

Это $HOME, но изменение, это - значение, не произведет расширение. См. эту ссылку для получения дополнительной информации.

2
ответ дан 07.12.2019, 15:30
  • 1
    Изменение его значения будет, но сбрасывание его не будет. Когда $HOME сброшен, удар устанавливает его при расширении ~, как может быть проверен путем выполнения strace, повторяют ~ На Cygwin, я вижу эту строку: 79 56 614 [основного] эха 2 380 cygheap_user:: ontherange: Набор ДОМОЙ (от/etc/passwd) к/cygdrive/g – reinierpost 17.09.2009, 13:04

Хакеры Bash Wiki - документация - расширение тильды:

Расширение тильды используется для расширения до нескольких определенных путей:

  • корневые каталоги
  • текущий рабочий каталог
  • предыдущий рабочий каталог
1
ответ дан 07.12.2019, 15:30

~ интерпретируется как dir дома оболочкой. это - "ключевое слово"

-3
ответ дан 07.12.2019, 15:30

Теги

Похожие вопросы