В этой строке:
tr a A < /etc/hosts | sort -r |pr -d > /etc/hosts
каков будет ожидаемый результат? Я знаю, что строчные буквы "а" изменится на прописные буквы "А", но что дальше? Будет ли перезаписан исходный файл, поскольку перенаправление выполняется с тем же именем файла?
shell
io-redirection
tr
tdharrison
источник
источник
bash: /etc/hosts: Permission denied
об ошибке (при условии, что ваша оболочка - bash), если вы не запускаете это какroot
./etc/hosts
обычно доступен для записи только пользователю root. Если вы используете это какroot
(что на самом деле не должно), вы получите пустое место,/etc/hosts
как объяснил Майкл Гомер.Ответы:
Ожидаемый результат - пустой
/etc/hosts
файл.Перенаправление
> /etc/hosts
происходит и усекает файл до запуска программ иtr
начинает читать из файла.Чтобы записать выходные данные
/etc/hosts
, вы можете либо работать с копией файла (или впоследствии переместить выходной файл на место), либо использоватьsponge
команду из moreutils , которая впитывает стандартный ввод и записывает в файл:В этом случае каждое «а»
/etc/hosts
будет заменено на «А», все строки будут отсортированы в обратном порядке в соответствии с вашей локалью , пустая строка будет вставлена между каждой строкой , и результат будет помещен в/etc/hosts
.Вы также можете найти полезное:
источник