Используя широкое определение "файла"
ls | wc -l
(обратите внимание, что это не считает скрытые файлы и предполагает, что имена файлов не содержат символы новой строки).
Включать скрытые файлы (кроме .
и ..
) и избегайте проблем с символами новой строки, канонический путь:
find . ! -name . -prune -print | grep -c /
Или рекурсивно:
find .//. ! -name . -print | grep -c //
/bin
(и /sbin
) были предназначены для программ, которые должны были быть на маленьком /
раздел перед большим /usr
, и т.д. разделы были смонтированы. В эти дни это главным образом служит стандартным местоположением для ключевых программ как /bin/sh
, хотя исходное намерение может все еще быть важно для, например, установки на маленьких встроенных устройствах.
/sbin
, в отличие от /bin
, для программ управления системой (не обычно используется обычными пользователями) необходимый прежде /usr
смонтирован.
/usr/bin
для управляемых распределением программ обычного пользователя.
Существует a /usr/sbin
с теми же отношениями к /usr/bin
как /sbin
имеет к /bin
.
/usr/local/bin
для программ обычного пользователя, не управляемых диспетчером пакетов распределения, например, локально скомпилированными пакетами. Вы не должны устанавливать их в /usr/bin
потому что будущие обновления распределения могут изменить или удалить их без предупреждения.
/usr/local/sbin
, поскольку можно, вероятно, предположить эту точку, к /usr/local/bin
как /usr/sbin
кому: /usr/bin
.
Кроме того, существует также /opt
который является для монолитных пакетов нераспределения, хотя, прежде чем они были правильно интегрированы, различные дистрибутивы помещают Gnome и KDE там. Обычно Вы должны зарезервировать его для большого, плохо вели себя сторонние пакеты, такие как Oracle.
Я рекомендую смотреть на страницу справочника иерархии файловой системы:
man hier
который является также доступен онлайн, например: http://linux.die.net/man/7/hier. Соответствующие части были скопированы ниже. В зависимости от Вашей системы это может сказать что-то другое.
Имя:
hier - описание иерархии файловой системы
Описание
Типичная система Linux имеет, среди других, следующих каталогов:
/bin
Этот каталог содержит исполняемые программы, которые необходимы в однопользовательском режиме и поднять систему или восстановить его.
/sbin
Как
/bin
, этот каталог содержит команды, должен был загрузить систему, но которые обычно не выполняются обычными пользователями.
/usr/bin
Это - основной каталог для исполняемых программ. Большинство программ, выполненных обычными пользователями, которые не нужны для начальной загрузки или для восстановления системы и которые не установлены локально, должно быть помещено в этот каталог.
/usr/local/bin
Двоичные файлы для программ, локальных для сайта.
/usr/local/sbin
Локально установленные программы для системного администрирования.
/usr/sbin
Этот каталог содержит двоичные файлы программы для системного администрирования, которые не важны для процесса начальной загрузки для монтирования
/usr
, или для системного восстановления.
Запись Стандарта Иерархии Файловой системы в Википедии помогла мне ответить на тот же вопрос, когда у меня был он, плюс он имеет очень объяснительную таблицу.
Выборка от этого page1:
/bin Essential command binaries that need to be available in single user mode; for all users, e.g., cat, ls, cp. /usr/bin Non-essential command binaries (not needed in single user mode); for all users. /usr/local Tertiary hierarchy for local data, specific to this host. Typically has further subdirectories, e.g., bin, lib, share /usr/sbin Non-essential system binaries, e.g., daemons for various network-services. /sbin Essential system binaries, e.g., fsck, init, route.
1 Полученный 19 июня 2019; постоянная ссылка.
sbin
каталоги содержат программы, которые обычно являются системным администрированием только. Программы для обычных пользователей никогда не должны входить в них.
Несколько программ необходимы во время запуска и заканчиваются в /bin/
или /sbin/
. Они должны быть доступными, прежде чем файловые системы будут смонтированы. Вещи как mount
, и fsck
это требуется, чтобы проверять и монтировать, что файловые системы должны быть там.
Большинство упакованных программ заканчивается в /usr/bin/
и /usr/sbin/
. Они могут быть в файловой системе кроме корневой файловой системы. В некоторых случаях они могут быть на сетевом подсоединенном внешнем диске.
Локальные программы и сценарии принадлежат /usr/local/bin/
и /usr/local/sbin/
. Это идентифицирует их как явно нестандартных, и возможно только доступных на сайте.
Поскольку дальнейшее объяснение пытается выполнить команду man hier
который должен предоставить описание рекомендуемой иерархии файловой системы для Вашего распределения. Можно также хотеть читать об Иерархии файловой системы на Википедию
В 1970-х годах UNIX
имел все официальные исполняемые файлы в / bin
, а / usr / bin
был расположение под домашними каталогами пользователей (например, / usr / dmr
), которое было доступно любому пользователю для хранения собственных двоичных файлов, которые могли быть интересны и для других.
Результатом этого открытого / usr / bin
была свалка недокументированного программного обеспечения, поэтому Стивен Борн
написал cron-скрипт
, который проверял наличие новых двоичных файлов. каждую ночь и удалил все двоичные файлы, для которых не было документации или которые были обновлены без обновления их документации.
В конце 1970-х годов / usr / bin
был интегрирован в базовый дистрибутив ОС, и люди начали использовать / usr / local / bin
для целей предыдущего открытого / usr / bin
.
Через некоторое время системные администраторы использовали / usr / local / bin
для хранения нелокального
программного обеспечения, которое было импортировано из сети (например, USENET) и поскольку компании UNIX не использовали Я хотел бы повторить ту же ошибку, что и с / usr / bin
, где-то в 1987 году была конференция по иерархии файловых систем, на которой все компании UNIX согласились отказаться от / usr / local / bin
и вместо этого использовать / opt /
.
К сожалению, дистрибутивы Linux не последовали этому решению ....
~/bin
и добавьте что каталог к своему ПУТИ как пользователь... Спасибо за примечание я удалил свой серьезно устаревший комментарий. – kojiro 04.05.2016, 00:22PATH
переменная, иecho $PATH
для меня шоу/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
, что означает это исполняемые файлы в/usr/local/bin
имейте приоритет по тем в/usr/bin
которые имеют приоритет по тем в/bin
. – Gabriel Staples 15.01.2018, 23:10