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.