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