Есть ли допустимое имя для ссылки на ~ / paths? [закрыто]

Вы можете использовать параметр - format для inotifywait , чтобы изменить выходной формат. Это просто напечатает имена файлов, когда файлы закрываются, а не тип события:

inotifywait -eclose_write -m --format "%w%f" -q /path/to/target/dir

Кажется, он не поддерживает escape-символы в стиле C ( \ 0 ) и настаивает на печати новой строки в конце каждого события, поэтому я надеюсь, что у вас нет имен файлов с символами новой строки.

1
01.11.2016, 13:31
1 ответ

~ / - лишь одно из нескольких волшебных « Расширений Тильды ». Расширения тильды особенно связаны с оболочками UNIX. В отличие от $ HOME, расширения тильды не универсальны и могут варьироваться от оболочки к оболочке. Единственная общность - это соблюдение стандарта POSIX (по большей части), и, согласно Википедии, стандарт оболочки POSIX основан на «строгом подмножестве» оболочки Korn, производной от оболочки Bourne. Потомки оболочки Bourne включают, в частности, bash и zsh. Вот что POSIX говорит о расширениях тильды :

«Префикс тильды» состоит из символа без кавычек в начале слова , за которым следуют все символы, предшествующие {{ 1}} первым без кавычек в слове или все символы в слове , если их нет. В присвоении (см. Назначение переменной XBD ) можно использовать несколько префиксов тильды: в начале слова (то есть после присвоения), после любого без кавычек или и того, и другого.Префикс тильды в присвоении завершается первым без кавычек или. Если ни один из символов в префиксе тильды не заключен в кавычки, символы в префиксе тильды после символа рассматриваются как возможное имя для входа из базы данных пользователей. Переносимое имя входа не может содержать символы вне набора, указанного в описании переменной среды LOGNAME в других переменных среды XBD. Если имя входа пустое (т. Е. Префикс тильды содержит только тильду ), префикс тильды заменяется значением переменной HOME. Если HOME не задан, результаты не указаны. В противном случае префикс тильды должен быть заменен на путь к исходному рабочему каталогу , связанный с именем входа, полученным с помощью функции getpwnam () , как определено в Системных интерфейсах. том POSIX.1-2008. Если система не распознает имя для входа, результаты будут неопределенными.

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

В основном это означает, что ~ дает ссылки $ HOME и ~ foo / на начальный рабочий каталог пользователя foo. Примерно, но не всегда имеется в виду домашний каталог foo. (единственное исключение, о котором я могу думать, это root)

В BaSH они не придерживаются этого стандарта для тильд-разложений в несколькими способами , и это не особенно важно. У BaSH также есть другие забавные расширения тильды, ссылка любезно предоставлена ​​комментатором @phk. Вы можете собрать их все!


Но я отвлекся.Если мы говорим о том, что называется ~ /, я не уверен, имеете ли вы в виду термин для самого пути (в форме ~ / x / y / z ) или для феномен использования ~ / для создания указанного пути (например, произведение искусства против искусства, производное против дифференциации). Поскольку ~ / paths и ~ / расширенные пути , похоже, относятся к первому, а ~ / синтаксис и ~ / нотация - ко второму) . Я, наверное, слишком усложняю, но язык - вещь непостоянная. Например, ~ / paths подчеркивает, что форма путей начинается с ~ / , а ~ / extended paths подчеркивает функцию ~ / ] выполняет создание пути этой формы.

В любом случае, к настоящему времени вы, вероятно, поняли, что

не существует общепринятого названия

, поскольку все эти термины находятся в обращении, и этому вопросу не было уделено официального внимания, о котором мы знаем от держав, которые быть. Или, говоря иначе, все эти термины представляют собой способы описания одного и того же, а не конкурирующие ярлыки. У них нет официального названия, но любой, кто немного знает bash, сразу поймет, что они означают - и если люди поймут, о чем вы говорите, кого волнует, как вы это называете? Вы сами решаете, какой термин вам нравится. Лично мне нравится ~ / paths , произносится как «пути с тильдой и косой чертой» . И для обращения к феномену «сокращенное обозначение тильды-косой черты» . Если честно, я даже не думаю, что им нужно имя ...

1
27.01.2020, 23:47

Теги

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