4

в словаре, что означает знак @, когда он идет сразу после каталога?

ех.

pdf/
public_html/
video@

Это символическая ссылка, однако на другом сервере эта же символическая ссылка не имеет знака @ после нее.

3 ответа3

6

Это разница между:

$ ls

а также

$ ls -F

но это не замазка.

1

Я знаю, что на это ответили, но я хотел бы добавить некоторые детали, и трудно дать большие объяснения в окне комментариев.

Команда ls принимает флаг -F который украшает определенные типы файлов завершающими символами. Каталоги принимают / , исполняемые файлы * , символические ссылки @ . Если вы печатаете ls на двух машинах и смотрите на одну и ту же файловую систему на обеих, но видите разные вещи, я думаю, у вас есть псевдоним или функция для ls на одной, которая не соответствует другой. На обеих машинах наберите type ls и я уверен, что на обеих машинах вы получите различный вывод.

Также в своем комментарии вы говорите о жестких ссылках и символических ссылках. Они очень разные. Символьная ссылка - это указатель на файл или каталог. Это очень похоже на ярлык в Windows (хотя UNIX сделал это лучше, чем Windows, который плохо копировал). Он может указывать куда угодно; на этом диске, на другом диске. Даже то, на что оно указывает, может быть или не быть там. Если у меня есть символическая ссылка, указывающая на несуществующий файл / каталог, это называется висячей символической ссылкой.

Жесткая ссылка - это имя файла. Думайте о файле действительно из двух частей. Там данные, фактическая информация, которую вы положили в файл. Твой текст, песня, что угодно. Или ничего, для пустого файла. Затем подумайте о метаданных, информации о вашем файле. Что это за имя? Что это за файл (файл, каталог, fifo, символическая ссылка и т.д.). Когда я последний раз писал в него, каковы права доступа к файлу? Эти метаданные являются жесткой ссылкой. В UNIX они не имеют однозначного отношения между этими метаданными «имя и другие вещи» и фактическим файлом. Я могу создать больше этих ссылок - разные имена, разные местоположения, разные разрешения. Это то, что называется жесткой связью. Система всегда создает одну из этих жестких ссылок при создании файла, но hard-linking ссылка обычно ссылается только тогда, когда вы вручную создаете другую с помощью ln . Жесткая ссылка может быть только в той же файловой системе, что и данные, это еще одно отличие от символических ссылок. Системы Linux также не позволяют создавать жесткие ссылки на каталоги, поскольку это может привести к возникновению циклов в структуре каталогов и вызвать реальные проблемы (MacOSX немного смягчает это, поскольку использует жесткие ссылки, чтобы сделать резервные копии Time Machine (tm) более незаметными для Пользователь).

0

Введите man ls чтобы прочитать о значении символов, указанных при перечислении файлов. @ означает, что файл является символической ссылкой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .