Предложение :использовать 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 "
(, который его выполнит)
Обоснование дано в справочном разделе . Он был актуален с середины -до -конца 2000-х годов, но в наши дни уже не актуален.
Причина создания /usr
отдельной файловой системы заключается в сохранении небольшого размера корневой файловой системы. Дерево каталогов /usr
предназначено для установленного программного обеспечения.
Установленное программное обеспечение не часто меняется, поэтому вы можете монтировать /usr
только для чтения -. Корневая файловая система обычно не может быть смонтирована для чтения -только потому, что /etc
обычно нужно довольно часто изменять¹. Основное преимущество сохранения /usr
только для чтения -состоит в том, чтобы избежать длительной проверки файловой системы, если система выйдет из строя, когда она смонтирована для чтения -для записи. Это больше не актуально для современной файловой системы, в которой есть журнал или другой механизм, который позволяет им восстанавливаться непосредственно после сбоя.
Установленное программное обеспечение может быть идентичным на нескольких одинаковых машинах, поэтому /usr
можно читать только -, а если у вас есть локальная сеть, вы можете хранить его на одном сервере и монтировать на других машинах. Загружаться из корневой файловой системы по сети сложнее (, требуется дополнительная поддержка загрузчика и ядра, что делает машину полностью непригодной для использования, если сеть не работает ). Это было обычным делом, когда /usr
мог стоить 200 долларов дискового пространства, и не имеет значения в наши дни, когда он стоит всего несколько центов.
Таким образом, в настоящее время /usr
редко является отдельной файловой системой, и даже становится все более и более распространенным просто сделать /usr
символической ссылкой на /
.
¹ В Linux, по крайней мере, в настоящее время это не так верно, как раньше :главным виновником был /etc/mtab
, который раньше был обычным файлом, но в настоящее время /proc/mounts
достаточно хорош служить как /etc/mtab
и поэтому /etc/mtab
обычно является символической ссылкой на него ). Однако появились новые преступники,например, Cups и NetworkManager любят обновлять файлы, содержащие отметку времени, когда они в последний раз видели принтер/сеть.
Вы читаете очень старое руководство, которое в некотором смысле устарело.
Раньше для некоторых 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
, что требует отдельной файловой системы Вот именно.