Не удается установить флаг сжатия в файл в BTRFS

Попробуйте использовать кавычки ", чтобы заключить весь аргумент sed, и избегайте любых существующих кавычек, например:

sed -i "s|\(\"browser.startup.homepage\",\) \"\(.*\)\"|\1 \"$ddrs\" |" /home/max/.mozilla/firefox/*.default/prefs.js

Объяснение

Исходный аргумент, который вы передали sed, выглядит следующим образом:

's|\("browser.startup.homepage",\) "\(.*\)"|\1 "$ddrs" |'
  • использует синтаксис s | search | replace | ,
  • , но заключен в буквальную кавычку ' , который блокирует расширение bash $ ddrs , поэтому $ ddrs не был расширен Bash

Мы просто изменили этот аргумент на:

"s|\(\"browser.startup.homepage\",\) \"\(.*\)\"|\1 \"$ddrs\" |"
  • , однако, поскольку мы используем " кавычки, нам нужно экранировать исходный " , заменив их на \ "
  • , поскольку теперь они заключены только в " цитата, Bash успешно расширит $ ddrs
0
17.09.2018, 21:54
1 ответ

Не вдаваясь в подробности о самой файловой системе, я не могу быть уверен, но полагаю, что попытка установить флаг будет отклонена, потому что она избыточна с опцией монтирования compress=. Это не является стандартным поведением для любой версии BTRFS, о которой я знаю, но RHEL (и, как расширение, CentOS )используют действительно странное ядро, которое основано на том, что в настоящее время является древней базовой версией с кучей новых исправлений. вручную -собраны и перенесены, так что действительно трудно точно сказать, что будут делать их ядра.

Установка compress=или compress-force=(, и вы, вероятно, на самом деле хотите второй, иначе BTRFS довольно легко перестанет сжимать файлы )параметры монтирования будут устанавливать по умолчанию для этого тома. Другими словами, монтирование сcompress=zlib(как у вас )указывает BTRFS игнорировать флаг сжатия и просто сжимать все вновь записанные данные на этом томе. Единственным исключением являются:

  • compress=none, который не игнорирует флаг сжатия.
  • Команда btrfs filesystem defrag, которая может переопределить сжатие дефрагментируемых файлов (, например, там, где я работаю, мы монтируем том с помощью compress=none(, чтобы новые данные не сжимались ), а затем запускаем еженедельная дефрагментация всех файлов, которые не были изменены с момента последнего прохода, который сжимает их на месте ).
3
28.01.2020, 02:42

Теги

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