Определите, является ли вывод ls файлом или каталогом

Я бы сказал, нет, вы не можете априори нарисовать карту, чтобы безопасно перемещаться по ней.

Вы упомянули сайты вопросов и ответов. Форумы IME Q&A часто не справляются с этим. Вы получаете несколько мнений, но не полностью аргументированные объяснения. Сторонняя «документация», обнаруженная при поиске в Интернете, например сообщения в блогах, часто имеет такое же качество. Конечно, в то время ответы полезны; они позволяют вам увидеть опыт и чтения других людей. Но аргументированное объяснение со ссылкой на первоисточники может быть полезным, даже если оно полностью устарело.

Раз уж вы спросите. Я бы сказал, что POSIX об этом. Множество поставщиков стандартизировали 1) системные вызовы и 2) служебные команды, и они останутся функциональными в будущем, чтобы сохранить совместимость с существующими приложениями.

Опять же, помните, что авторитет - это сам стандарт. Мой курс CS в одном из престижных университетов объединил стандарт потоков POSIX с первоначальной непоследовательной попыткой его реализации в Linux. Игнорирование контрпримера второй реализации (NPTL). И материалы этих курсов часто доступны в Интернете ...

Проблема в том, что после того, как они согласованы и закреплены в стандарте, они не обязательно останутся актуальными и интересными. Я думаю, что провал Linux Standard Base был бы примером этого. (Обратите внимание, что недавно сопоставимые разработки, такие как приложения xdg flatpack, построены на версионных средах выполнения. И посмотрите, как быстро меняется GTK).

Я думаю, что анализ безопасности дает убедительные примеры. Мы просто еще не придумали, как построить безопасную систему.Старые / не исправленные системы / системы, в которых не применялись меры по устранению ошибки du jour , считаются полностью неисправными. Поэтому они постоянно меняются.

Предупреждение любви к POSIX: операционные системы, используемые в реальном мире , будут каким-то образом отклоняться от стандарта. Сертификация OS X, POSIX - реализация fsync () была запрещена в соответствии с тем, что все остальные считают предполагаемым значением. Некоторые седобородые Linux утверждают, что мы должны ломать приложения, которые используют раздражающие имена файлов, например. которые включают управляющие символы. И т.д.

2
19.12.2018, 18:13
3 ответа

В Linux

ls -p 

добавляет завершающую косую черту к каталогам

16
27.01.2020, 21:48

Другой метод: ls -l отображает файлы и папки с битами прав доступа. Если строка начинается с -, это файл, если это каталог, он начинается с d.

ls -l
-rw-r--r--   1 user  group    7727 Feb 27 16:07 README.md
drwxr-xr-x   6 user  greup     204 Mar  3 09:20 my_directory
2
27.01.2020, 21:48
-F, --classify
       append indicator (one of */=>@|) to entries

Пример вывода, где 1 и 2 - это каталоги, а 3 , 4 - это файлы:

$ ls -F
1/  2/  3  4
10
27.01.2020, 21:48

Теги

Похожие вопросы