Çıktı yeniden yönlendirmesi ve boşlukları


9

Bu konuda paranoyağım, ama umarım basit bir soru:

Arasında herhangi bir fark var mı

cat file1 | egrep -oP "[Mm]y string" > /home/user/file.txt

ve

cat file1|egrep -oP "[Mm]y string">/home/user/file.txt

yani, dikey çizgi (|) ve yönlendirme (>) karakterlerini dolduran boşluklar olması önemli midir? Gerçekten paranoyak ben orada boşluk olması istemiyorum zaman boşluk bir şekilde çıktı dosyasında sona erecek. Herkes açıklığa kavuşturabilir mi? (Önemliyse Ubuntu 12 / bash kullanmak.)


Tek farklar a) kozmetik ve b) bash'daki komut satırlarını düzenlerken kolaylıktır - örneğin, bir "kelime" boşluklarla sınırlanır, bu nedenle etrafında boşluk olmadan |veya >daha sonra Ctrl-Wönceki "sözcüğü" silmek için yazmak istediğinizden daha fazlasını siler. İmleç-hareketi için aynen gibi tuş vuruşlarını Esc-fve Esc-bvb
cas

Yanıtlar:


8

Kabuk komut satırında, alıntılanmamış boşluklar yalnızca komut ayrıştırması sırasında sözcükleri sınırlamaya yarar. Ne komutun gördüğü argümanlarda ne de standart giriş akışında aktarılmazlar.


Operatörlerden sonra boşluk kullanmanın güvenlik açığı olmadığından emin misiniz? Şimdi çoğaltmakta zorlanıyorum, ancak kötü amaçlı bir kullanıcının amaçlanan dosya "dosyaAdı" olduğunda "dosyaAdı" gibi bir dosya kullanarak amaçlanan işlemi değiştirebileceği ortak bir istismar var.
CrippledTable
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.