Как изменить файл на месте с данными из стандартного ввода в bash/awk/sed

краткий ответ:

su -стать root (Я полагаю, вы можете это сделать)

затем перейдите к своему /var/wwwи выполните

# chown -R (your-normal-user):(your-normal-user).contacto_old

после этого перейдите к обычному пользователю с помощью Ctrl+Dи выполните

rm -rf.contacto_old

0
11.10.2019, 22:17
2 ответа

Вот что у меня получилось. Хотел бы я избавиться от временного файла

pullbashrc() {
  curl -s https://gist.githubusercontent.com/trajano/71553de32f335092ad62f2f301cadd0f/raw/7006ef1c1bf10520e47089b385b8f9670d5ce96e/.bashrc > /tmp/bashrc
  tail -n +$(egrep -n "^###" ~/.bashrc | cut -d ':' -f1) ~/.bashrc >> /tmp/bashrc
  mv -f /tmp/bashrc ~/.bashrc
}
0
28.01.2020, 03:11

Рассмотрите возможность выделения вашего личного содержимого bashrc в отдельный файл, а затем извлеките его из источника.

Однократная -установка времени:

sed -n '/^###/,$p' ~/.bashrc > ~/.bashrc.personal

Определение псевдонима:

alias pullbashrc='{ curl -s https://gist.githubusercontent.com/trajano/71553de32f335092ad62f2f301cadd0f/raw/7006ef1c1bf10520e47089b385b8f9670d5ce96e/.bashrc; [ -r ~/.bashrc.personal ] && printf '\n%s\n' "source ~/.bashrc.personal"; } > ~/.bashrc'

Я добавил начальную новую строку, так как в существующем файле не было завершающей новой строки, а в противном случае лишняя строка была бы безвредной. Внутри составного оператора есть тест, который проверяет, есть ли у вас читаемый файл ~/.bashrc.personal, прежде чем запрашивать его включение в вывод.

Если бы я собирался сделать что-то подобное, я бы пошел в направлении функции, как это сделали вы, и добавил некоторую ошибку -, проверяющую (, возможно, сетевое подключение не работает ), так что я не затирал существующий файл ~/.bashrcс усеченным содержимым.

0
28.01.2020, 03:11

Теги

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