Попробуйте использовать кавычки "
, чтобы заключить весь аргумент 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
Не вдаваясь в подробности о самой файловой системе, я не могу быть уверен, но полагаю, что попытка установить флаг будет отклонена, потому что она избыточна с опцией монтирования compress=
. Это не является стандартным поведением для любой версии BTRFS, о которой я знаю, но RHEL (и, как расширение, CentOS )используют действительно странное ядро, которое основано на том, что в настоящее время является древней базовой версией с кучей новых исправлений. вручную -собраны и перенесены, так что действительно трудно точно сказать, что будут делать их ядра.
Установка compress=
или compress-force=
(, и вы, вероятно, на самом деле хотите второй, иначе BTRFS довольно легко перестанет сжимать файлы )параметры монтирования будут устанавливать по умолчанию для этого тома. Другими словами, монтирование сcompress=zlib
(как у вас )указывает BTRFS игнорировать флаг сжатия и просто сжимать все вновь записанные данные на этом томе. Единственным исключением являются:
compress=none
, который не игнорирует флаг сжатия. btrfs filesystem defrag
, которая может переопределить сжатие дефрагментируемых файлов (, например, там, где я работаю, мы монтируем том с помощью compress=none
(, чтобы новые данные не сжимались ), а затем запускаем еженедельная дефрагментация всех файлов, которые не были изменены с момента последнего прохода, который сжимает их на месте ).