Более простой способ:
awk 'FNR == 3 {print;while(getline < "awk.scr") print; next};1' awk.script
или:
awk 'FNR == 4 {while(getline < "awk.scr") print};1' awk.script
При таком подходе вам нужно только позаботиться о awk.scr
, awk
обработает awk.script
для вас.
Это нормально по многим причинам.
Во-первых, проблема с флэш-накопителями заключается в количестве операций записи, а не в количестве операций чтения.
Во-вторых, это относится к старым или более дешевым накопителям с плохой прошивкой или некачественными драйверами, но не к современным накопителям с современными операционными системами. Современные твердотельные накопители имеют достаточно хорошее выравнивание износа, а современные ОС имеют драйверы, которые отличают перезапись от стирания(TRIM ), поэтому требуется очень много времени, прежде чем количество операций записи станет проблемой. В этом возрасте магнитные приводы часто выходят из строя по причинам, -связанными с механическими факторами, такими как влажность или запыление в неположенном месте или механические повреждения.
Чтение по символической ссылке может обновить время доступа в зависимости от конфигурации системы. Linux по умолчанию обновляет время доступа к файлу только один раз в день . Таким образом, даже если бы возникло беспокойство по поводу количества операций записи на диск, одна запись была бы за один день, а не один доступ через символическую ссылку.
Ядро хранит информацию о символической ссылке в своем дисковом кэше, как и любую другую информацию, которую оно считывает с диска. Он не хранит кеш со словами «/var/Nextcloud_Data/filename
перенаправляет на /mnt/HDDfs/Nextcloud_Data/filename
», но поддерживает кеш со словами «/var/Nextcloud_Data
— это символическая ссылка, целью которой является /mnt/HDDfs/Nextcloud_Data
». Это означает, что пока запись кэша все еще присутствует, она не будет считываться с диска. Это не имеет отношения к тому, как часто обновляется :время доступа, которое зависит от времени доступа к файлу, а не от времени передачи информации о файле с накопителя.