Dans cette ligne:
tr a A < /etc/hosts | sort -r |pr -d > /etc/hosts
quel serait le résultat attendu? Je sais que «a» en minuscule se changerait en «A» en majuscule, mais quelle est la prochaine étape? Le fichier d'origine serait-il écrasé puisque la redirection est vers le même nom de fichier?
shell
io-redirection
tr
tdharrison
la source
la source
bash: /etc/hosts: Permission denied
erreur (en supposant que votre shell est bash), sauf si vous l'exécutez en tant queroot
./etc/hosts
est normalement accessible en écriture uniquement par root. Si vous exécutez cela commeroot
(ce que vous ne devriez vraiment pas), vous obtiendrez un vide/etc/hosts
comme l'explique Michael Homer.Réponses:
Le résultat attendu est un
/etc/hosts
fichier vierge .La redirection
> /etc/hosts
se produit et tronque le fichier avant que les programmes ne démarrent et netr
commencent à lire le fichier.Pour écrire la sortie dans
/etc/hosts
, vous pouvez soit travailler avec une copie du fichier (ou déplacer votre fichier de sortie en place par la suite), soit utiliser lasponge
commande de moreutils , qui absorbera l'entrée standard et écrit dans un fichier:Dans ce cas, chaque "a" dans
/etc/hosts
sera remplacé par "A", toutes les lignes seront triées en sens inverse en fonction de votre environnement local , une ligne vierge sera insérée entre chaque ligne , et le résultat sera placé dans/etc/hosts
.Vous pouvez également trouver utile:
la source