Как упоминалось в ответе на аналогичный вопрос о замене разделов ELF, обсуждаемый на reverseengineering.se, простое использование dd
может быть достаточным при некоторых обстоятельствах, за исключением того, что новый архив не является большим , например есть ли переезды.
Вот несколько однострочников, с которыми вы можете поиграть и заставить их работать с sudo
:
printf '%s\n' a '' 'alias www="cd /var/www/html"' . ,p q | ed -s /etc/bash.bashrc
то же самое со строкой здесь:
ed -s /etc/bash.bashrc <<< $'a\n\nalias www="cd /var/www/html"\n.\n,p\nq'
заменить ,p
с w
для редактирования на месте; или
sed -e '${G;G;s|$|alias www="cd /var/www/html"|' -e'}' /etc/bash.bashrc
добавить -i
(gnu sed
) или -i ''
(bsd sed
) для редактирования на месте; или
cat <<< $'\nalias www="cd /var/www/html"' >> /etc/bash.bashrc
printf '\nalias www="cd /var/www/html"\n' | sudo tee -a /etc/bashrc
printf
интерпретирует символы обратной косой черты в стиле C, включая \n
. tee -a
открывает данный файл для добавления и записывает в него полученные данные.
Вы также можете применить это к существующему bash -c
:
sudo bash -c "printf '\\nalias www=\"cd /var/www/html\"\\n' >> /etc/bashrc"
, который не использует операторы оболочки верхнего уровня, если вы действительно хотите их избежать.