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 deniederror (suponiendo que su shell sea bash), a menos que esté ejecutando esto comoroot./etc/hostsnormalmente se puede escribir solo por root. Si está ejecutando esto comoroot(lo que realmente no debería), obtendría un vacío/etc/hostscomo Michael Homer explicó.Respuestas:
El resultado esperado es un
/etc/hostsarchivo en blanco .La redirección se
> /etc/hostsproduce y trunca el archivo antes de que los programas comiencen a ejecutarse ytrcomience 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 elspongecomando de moreutils , que absorberá la entrada estándar y escribirá en un archivo:En ese caso, cada "a"
/etc/hostsse 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