tr a A </ etc / hosts | sort -r | pr -d> / etc / hosts


9

Bu satırda:

tr a A < /etc/hosts | sort -r |pr -d > /etc/hosts 

beklenen sonuç ne olurdu? Küçük harf 'a'nın büyük harf' A 'olarak değişeceğini biliyorum ama sırada ne var? Yönlendirme aynı dosya adına olduğundan orijinal dosyanın üzerine yazılır mı?


Bunu bash: /etc/hosts: Permission deniedolarak çalıştırmadığınız sürece bir hata (kabuğunuzun bash olduğunu varsayarak) almalısınız root. /etc/hostsnormalde yalnızca kök tarafından yazılabilir. Eğer rootbunu gerçekten yapmıyorsan (ki gerçekten yapmamalısın), /etc/hostsMichael Homer'in açıkladığı gibi boş kalacaksın .
arielf

Yanıtlar:


17

Beklenen sonuç boş bir /etc/hostsdosyadır.

Yönlendirme > /etc/hostsgerçekleşir ve dosyayı keser programları yayınlanmaya başlamadan önce ve trdosyadan okumaya başlar.

Çıktıyı içine yazmak için /etc/hosts, ya dosyanın bir kopyasıyla çalışabilir (ya da daha sonra çıktı dosyanızı yerine taşıyabilirsiniz) ya da daha fazla dosyadaki spongekomutu kullanarak standart girdiyi emer ve bir dosyaya yazabilirsiniz:

tr a A < /etc/hosts | sort -r | pr -d | sponge /etc/hosts

Bu durumda, her "a" olarak /etc/hostsedilecektir ikame "A" ile, tüm hatlar olacak için yerele göre ters olarak kriteri , bir boş satır her bir hat arasına yerleştirilir , ve sonuç konulacaktır /etc/hosts.


Ayrıca yararlı bulabilirsiniz:


1
Yazılan yolla ne beklemem gerektiğine ve beklenen sonucu elde etmek için nasıl yazılabileceğine açıklık için çok teşekkür ederim.
tdharrison

moreutils gerçekten harika bir alet takımı
Robert Riedl
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.