в словаре, что означает знак @, когда он идет сразу после каталога?
ех.
pdf/
public_html/
video@
Это символическая ссылка, однако на другом сервере эта же символическая ссылка не имеет знака @ после нее.
Это разница между:
$ ls
а также
$ ls -F
но это не замазка.
Я знаю, что на это ответили, но я хотел бы добавить некоторые детали, и трудно дать большие объяснения в окне комментариев.
Команда ls
принимает флаг -F
который украшает определенные типы файлов завершающими символами. Каталоги принимают /
, исполняемые файлы *
, символические ссылки @
. Если вы печатаете ls
на двух машинах и смотрите на одну и ту же файловую систему на обеих, но видите разные вещи, я думаю, у вас есть псевдоним или функция для ls
на одной, которая не соответствует другой. На обеих машинах наберите type ls
и я уверен, что на обеих машинах вы получите различный вывод.
Также в своем комментарии вы говорите о жестких ссылках и символических ссылках. Они очень разные. Символьная ссылка - это указатель на файл или каталог. Это очень похоже на ярлык в Windows (хотя UNIX сделал это лучше, чем Windows, который плохо копировал). Он может указывать куда угодно; на этом диске, на другом диске. Даже то, на что оно указывает, может быть или не быть там. Если у меня есть символическая ссылка, указывающая на несуществующий файл / каталог, это называется висячей символической ссылкой.
Жесткая ссылка - это имя файла. Думайте о файле действительно из двух частей. Там данные, фактическая информация, которую вы положили в файл. Твой текст, песня, что угодно. Или ничего, для пустого файла. Затем подумайте о метаданных, информации о вашем файле. Что это за имя? Что это за файл (файл, каталог, fifo, символическая ссылка и т.д.). Когда я последний раз писал в него, каковы права доступа к файлу? Эти метаданные являются жесткой ссылкой. В UNIX они не имеют однозначного отношения между этими метаданными «имя и другие вещи» и фактическим файлом. Я могу создать больше этих ссылок - разные имена, разные местоположения, разные разрешения. Это то, что называется жесткой связью. Система всегда создает одну из этих жестких ссылок при создании файла, но hard-linking
ссылка обычно ссылается только тогда, когда вы вручную создаете другую с помощью ln
. Жесткая ссылка может быть только в той же файловой системе, что и данные, это еще одно отличие от символических ссылок. Системы Linux также не позволяют создавать жесткие ссылки на каталоги, поскольку это может привести к возникновению циклов в структуре каталогов и вызвать реальные проблемы (MacOSX немного смягчает это, поскольку использует жесткие ссылки, чтобы сделать резервные копии Time Machine (tm) более незаметными для Пользователь).
Введите man ls
чтобы прочитать о значении символов, указанных при перечислении файлов. @
означает, что файл является символической ссылкой.