У меня есть каталог brothers который содержит файлы John.txt и Max.txt . Я могу без проблем обращаться в каталог brothers и обратно. Однако, когда я нахожусь в суперкаталоге brothers (на один уровень выше) и использую команду ls -l она печатает следующее:

lrwxrwxrwx 1 root root 128 Jun 26 13:59 brothers -> filePathHere

Как видно из первой буквы вышеприведенного вывода, команда ls -l считает, что brothers - это файл, а не каталог. Разве первая буква не должна быть буквой d (она показывает букву d для всех других моих каталогов)? Как я могу это исправить?

2 ответа2

2

Процитирую man-страницу ls:

l = Запись является символической ссылкой, и либо был задан флаг -N, либо символическая ссылка не указала на существующий файл.

А для дальнейшего использования d обозначает каталог, а - обозначает обычный файл.

1

«Братья» - это специальный тип файла, называемый символической ссылкой. Это похоже (хотя есть некоторые различия) на ярлык в Windows. когда вы cd к «братьям», вы на самом деле переходите к «filePathHere».

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