En esta linea:
tr a A < /etc/hosts | sort -r |pr -d > /etc/hosts
¿Cuál sería el resultado esperado? Sé que 'a' en minúsculas cambiaría a 'A' en mayúsculas, pero ¿qué sigue? ¿Se sobrescribirá el archivo original ya que la redirección es al mismo nombre de archivo?
shell
io-redirection
tr
tdharrison
fuente
fuente
bash: /etc/hosts: Permission denied
error (suponiendo que su shell sea bash), a menos que esté ejecutando esto comoroot
./etc/hosts
normalmente se puede escribir solo por root. Si está ejecutando esto comoroot
(lo que realmente no debería), obtendría un vacío/etc/hosts
como Michael Homer explicó.Respuestas:
El resultado esperado es un
/etc/hosts
archivo en blanco .La redirección se
> /etc/hosts
produce y trunca el archivo antes de que los programas comiencen a ejecutarse ytr
comience a leer desde el archivo.Para escribir la salida
/etc/hosts
, puede trabajar con una copia del archivo (o mover su archivo de salida a su lugar después), o usar elsponge
comando de moreutils , que absorberá la entrada estándar y escribirá en un archivo:En ese caso, cada "a"
/etc/hosts
se reemplazará con "A", todas las líneas se ordenarán en reversa de acuerdo con su ubicación , se insertará una línea en blanco entre cada línea y se colocará el resultado/etc/hosts
.También te puede resultar útil:
fuente