Существует много полезных ресурсов по стандартам, в том числеhttps://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html
Я бы предложил:
/run//
. Это потому, что /var/run
— это просто сим-ссылка -на /run
в наши дни в Ubuntu. /run
— новое стандартное место для таких вещей. /var/log//
Верно. Хотя один журнал на самом деле не нуждается в каталоге. Не забудьте также добавить запись /etc/logrotate.d
/etc//
Верно. Опять же, для одного файла конфигурации не нужен каталог, но это не повредит. Двоичные файлы:
Это сложно; есть целая куча мест, где они могут существовать. Как правило, bin
предназначен для пользовательских команд, а sbin — для серверных демонов. Некоторые люди говорят, что sbin
предназначен для двоичных файлов, запускаемых только пользователем root.См. здесь:https://askubuntu.com/questions/308045/differences-between-bin-sbin-usr-bin-usr-sbin-usr-local-bin-usr-local
/bin
или /sbin
. Зарезервируйте их для двоичных файлов, необходимых для загрузки вашей системы. /usr/bin
и /usr/sbin
. Большинство вещей на унбунту живут здесь, хотя есть и исключения. Если вы правильно упаковываете свое программное обеспечение (в.dpkg или аналогичный файл ), обязательно используйте /usr/bin
и /usr/sbin
. /usr/local/bin
и /usr/local/sbin
. Но это, как правило, не следует использовать, если вы собираетесь распространять свой код среди других людей. /usr/lib
или /usr/local/lib
. Нередко двоичные файлы рассматриваются как библиотеки Короче говоря, /usr/sbin
и /usr/bin
, скорее всего, верны.
Если онина самом делеразличны, за исключением нескольких последних цифр, вы можете использовать подстановочный знак в команде cd, например,
cd 164*8
(и если они на самом деле не различны, оболочка напомнит вам об этом, выдав сообщение об ошибке ).
Да, в Bash можно использовать подстановочные знаки:
cd /path/to/*9/
(замените 9
любым количеством цифр, которое вам нужно; вы можете удалить /path/to/
, если вы находитесь в каталоге, содержащем все каталоги 164...
).
Необходимо убедиться, что выражение достаточно специфично для разрешения в один каталог, в противном случае cd
изменится на первый каталог, указанный в его аргументах (в Bash до версии 4.4 ), или произойдет сбой с ошибкой ошибка (Bash 4.4 и более поздние версии, построенные сCD_COMPLAINS
). (Будьте осторожны с Zsh или Ksh, у которых есть форма cd
с двумя -аргументами, которую вы можете вызвать случайно, хотя только если ваш текущий путь содержит первый аргумент.)
Вы также можете выполнить вкладку -после ввода вышеуказанной команды перед ее выполнением; если совпадает более одного каталога, ваша оболочка перечислит их все.
Вы можете сделать что-то нестандартное.
mycd() {
local ng=$( shopt -p nullglob )
shopt -s nullglob
local status
local matches=( *"$1"/ ) # directories ending in the parameter
case ${#matches[@]} in
0) echo "no directory ends with $1" >&2; status=1 ;;
1) cd "${matches[0]}"; status=$? ;;
*) echo "multiple directories end with $1" >&2; status=1 ;;
esac
$ng # restore the previous nullglob setting. specifically unquoted
return $status
}
mycd 89 # cd to the subdir ending with 89
Это можно расширить, чтобы использовать оператор select, когда существует более одного подходящего каталога, чтобы вы могли выбрать, какой из них вы хотите.