Почему usr называется файловой системой, а корневая файловая система должна быть маленькой?

Предложение :использовать awk для простого сокращения " _" и "." и легко получить доступ к частям, которые вы хотите создать с новым именем файла, с помощью

Если вы уверены, что все *файлы.dat имеют именно ту структуру, которую вы упомянули (, т. е. в них нет пробелов,всегда 6 '_'и только 1 '.' и т. д.):

# solution with awk, which can easily define fields using a regex
# (here: "[_.]" so that either 1 "_" or 1 "." separates one field from the next)
# awk will check we presented a filename with the correct number of fields, and also

cd /correct/directory || exit 1   # ie, go to the right directory containing your.dat files, or exit
find./ -name '*.dat' -print \
  | awk -F'[_.]' -v nbfield=8 '
       ( NF != nbfield ) {
           print "Error: file " $0 " ignored: does not have the right structure." ; 
           next;
       }
       ( NF == nbfield ) { 
           print "converting file: " $0 "..."
           system("echo _remove_echo_when_ok_ xy2sac  " $0 "  " $1"_"$2"__"$(NF-1)".sac && echo OK || echo ___ko___ ") 
       }
     '

И, конечно же, если вы считаете, что он работает правильно, :замените "echo _remove_echo_when_ok_ xy2sac "(, который только отображает, но не выполняет xy2sac )на "xy2sac "(, который его выполнит)

1
04.11.2020, 19:19
2 ответа

Обоснование дано в справочном разделе . Он был актуален с середины -до -конца 2000-х годов, но в наши дни уже не актуален.

Причина создания /usrотдельной файловой системы заключается в сохранении небольшого размера корневой файловой системы. Дерево каталогов /usrпредназначено для установленного программного обеспечения.

  • Установленное программное обеспечение не часто меняется, поэтому вы можете монтировать /usrтолько для чтения -. Корневая файловая система обычно не может быть смонтирована для чтения -только потому, что /etcобычно нужно довольно часто изменять¹. Основное преимущество сохранения /usrтолько для чтения -состоит в том, чтобы избежать длительной проверки файловой системы, если система выйдет из строя, когда она смонтирована для чтения -для записи. Это больше не актуально для современной файловой системы, в которой есть журнал или другой механизм, который позволяет им восстанавливаться непосредственно после сбоя.

  • Установленное программное обеспечение может быть идентичным на нескольких одинаковых машинах, поэтому /usrможно читать только -, а если у вас есть локальная сеть, вы можете хранить его на одном сервере и монтировать на других машинах. Загружаться из корневой файловой системы по сети сложнее (, требуется дополнительная поддержка загрузчика и ядра, что делает машину полностью непригодной для использования, если сеть не работает ). Это было обычным делом, когда /usrмог стоить 200 долларов дискового пространства, и не имеет значения в наши дни, когда он стоит всего несколько центов.

Таким образом, в настоящее время /usrредко является отдельной файловой системой, и даже становится все более и более распространенным просто сделать /usrсимволической ссылкой на /.

¹ В Linux, по крайней мере, в настоящее время это не так верно, как раньше :главным виновником был /etc/mtab, который раньше был обычным файлом, но в настоящее время /proc/mountsдостаточно хорош служить как /etc/mtabи поэтому /etc/mtabобычно является символической ссылкой на него ). Однако появились новые преступники,например, Cups и NetworkManager любят обновлять файлы, содержащие отметку времени, когда они в последний раз видели принтер/сеть.

2
18.03.2021, 22:52

Вы читаете очень старое руководство, которое в некотором смысле устарело.

Раньше для некоторых Unix'ов использовалась как отдельная /usrточка монтирования, а остальные файлы(/bin /etc /root /usr /sbin)-требовались только для успешной загрузки.

В настоящее время дистрибутивы Linux избавляются от /bin /sbinи /libи перемещают все в них в /usr/{bin,sbin,lib}, а это означает, что/usr(вместе с /etc /rootи/var)имеет все шансы принадлежать к корневому дистрибутиву. файловая система.

Современные Linux в 2020 году имеют эту иерархию:

/bin     -> /usr/bin
/boot     : a separate FS for storing kernel images and initial ram disks
/boot/efi : an EFI system partition - not specific to Linux
/dev      : tmpfs
/etc
/home
/lib     -> /usr/lib
/lib64   -> /usr/lib64
/media
/mnt
/opt
/proc      : virtual fs
/run       : tmpfs
/sbin     -> /usr/sbin
/sys       : virtual fs
/tmp       : tmpfs
/usr
/var

Так что, по крайней мере, вы обязаны иметь файловую систему для /и /boot. Однако никто не мешает вам поместить любые другие префиксы в свои собственные отдельные файловые системы.

Однако рекомендуется:

  • иметь /homeкак отдельную ФС, потому что это позволит вам легко переключаться между дистрибутивами
  • может быть /var/lib/{mysql|postgres|something else}как отдельная ФС для увеличения скорости и уменьшения фрагментации
  • некоторые люди предпочитают устанавливать проприетарные большие приложения в /optили /usr/local, что требует отдельной файловой системы

Вот именно.

0
18.03.2021, 22:52

Теги

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