Как определить, является ли цель софт-ссылки каталогом или файлом?

Принимая команды ll команды следующим образом

 #> ll lrwxrwxrwx ... 

Как определить, является ли цель софт-ссылки каталогом или файлом из «lrwxrwxrwx»?

3 Solutions collect form web for “Как определить, является ли цель софт-ссылки каталогом или файлом?”

Вы можете использовать параметр -F для ls для получения:

  -F, --classify append indicator (one of */=>@|) to entries 

то есть:

 # ln -s videos Videos # ls -l lrwxrwxrwx. 1 guido guido 6 Jan 23 14:11 videos -> Videos # ls -lF lrwxrwxrwx. 1 guido guido 6 Jan 23 14:11 videos -> Videos/ 

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

 # ln -s Videos/ videos 

в этом случае вы получаете конечную косую черту даже без опции классификации.

Вывод ll , который я предполагаю, является псевдонимом оболочки для ls -l , не содержит этой информации в режиме / разрешениях символической ссылки. В Linux ( символическая ссылка (2) ):

  The permissions of a symbolic link are irrelevant; the ownership is ignored when following the link, but is checked when removal or renam- ing of the link is requested and the link is in a directory with the sticky bit (S_ISVTX) set. 

В дополнение к ls предложенным в другом месте, существуют некоторые методы, которые являются менее подробными и поддаются написанию сценариев.

file поддерживает -L что заставляет его следовать (разыменовывать) символические ссылки:

 $ file /usr/local/bin/xzcat /usr/local/bin/xzcat: symbolic link to `xz' $ file -L /usr/local/bin/xzcat /usr/local/bin/xzcat: ELF 32-bit LSB executable, [...] $ file /var/adm /var/adm: symbolic link to `log' $ file -L /var/adm /var/adm: directory 

Опция -L – это не POSIX, но должна работать над любыми современными Linux и * BSD. Он будет следовать за несколькими символическими ссылками (которых нет ls ). Для более надежного использования он также поддерживает различные выходные форматы, например file -L -b --mime-type /var/adm , и -0 для имен с нулевым разграничением.

GNU stat еще проще:

 $ stat -c %F /var/adm symbolic link $ stat -L -c %F /var/adm directory 

Параметр -L работает так же, как и для file , параметр -c %F указывает, что stat выводит только тип файла, более подробную информацию см. В man-странице stat (1) . * BSD stat не совсем то же самое, что и GNU stat , строки формата разные, вместо этого используйте -f %HT .

Я думаю, что вы хотите:

 ls -l filename 

man – ваш друг:

 man ls 
  • Что-то вроде символически связанного файла, но с привязанными данными изменения?
  • Как предупредить sed -i от уничтожения символических ссылок?
  • Почему может быть создана программная ссылка на каталог с или без косой черты?
  • Как разбить две папки по инодам
  • Что делает $ 0 при вызове через символическую ссылку?
  • ссылка на исполняемый файл и удаление некоторых параметров
  • Файл -> ../../archive/folder/file восстановление
  • Конфигурация виртуального хоста apache CentOS7
  • можете ли вы добавить псевдоним в позицию внутри файла?
  • Символьная ссылка не является рекурсивной
  • Можем ли мы использовать символическую ссылку и жесткую ссылку для каталогов?
  • Interesting Posts

    Как монтировать bzip2-ed изображение Clonezilla без использования дополнительного дискового пространства?

    Не удалось подключиться к SSH-серверу из MacOS

    Почему один linux-дистрибутив работает быстрее, чем другой на ноутбуке?

    Обновление Centos до 6.5 не 6.6?

    Как я могу позволить пользователю приоритизировать процесс с отрицательной привлекательностью?

    Плавающий MAC-адрес в формате Heartbeat

    Как я могу определить, является ли «сторожевой таймер NMI: BUG: soft lockup» аппаратным или программным обеспечением?

    Вход Crontab с часовым диапазоном, проходящим в полночь

    константа "введите кодовую фразу для открытого ключа" ssh

    Проблема с использованием графических карт

    Правильное понимание прав для cp

    Где / должно быть создано wpa_supplicant.conf на Debian

    cat повреждает данные последовательного порта

    OpenVPN, похоже, не очищает таблицу маршрутов при нарушении туннеля VPN

    Как объединить один каталог в другой?

    Linux и Unix - лучшая ОС в мире.