2010-12-22 26 views
7
$ echo "" > /home/jem/rep_0[1-3]/logs/SystemOut.log 
bash: /home/jem/rep_0[1-3]/logs/SystemOut.log: ambiguous redirect 

Aynı anda birden çok dosyaya yeniden yönlendirebilir miyim?Bash belirsiz yönlendirme - birden çok dosyaya yönlendirme

Düzenleme: Belirsiz dosya başvurusunun kullanılmasına izin veren herhangi bir yanıt?

command | tee file1 file2 file3 > file4 

tee da Stdout'a çıkışı ve böylece her iki (yukarıda gösterildiği gibi) bir yönlendirme sonra bir dosya koymak veya /dev/null stdout göndermek isteyebilirsiniz: tee bunun için var

cevap

16

. davanızı için

:

echo "" | tee /home/jem/rep_0[1-3]/logs/SystemOut.log >/dev/null 
0

sayılı Ne iki kez tee kullanmaya ne dersiniz? "Tee" komutuna

echo "Your text" | tee file1 | tee file2 > file3 
+0

Teşekkürler. Joker dosya referansını kullanmak istediğimi belirtmeyi ihmal ettim. – Synesso

+0

Ardından Laurence'nin cevabına bakın. – Robert

+1

'tee' için birden çok argüman belirtebilirsiniz. İki kez çalıştırmaya gerek yok. –

0

Boru bir dosyaya dallara ve dışarı std için, kaskad tee Sen Stdin'den okuyan stdout ve dosyalara yazar tee kullanarak bunu yapabilirsiniz

+0

Teşekkürler. Joker dosya referansını kullanmak istediğimi belirtmeyi ihmal ettim. – Synesso

+1

Onları basamaklamak yerine 'tee'ye 'çoklu argümanlar belirleyebilirsiniz. –

5

emreder. tee ayrıca stdout'a da çıktı olduğundan, çıktısını /dev/null'a yönlendirmeyi seçtim. Bash genişlemesinin varolan dosyalara karşı eşleştiğini unutmayın, böylece yazmaya çalıştığınız dosyalar çalışması için bu komutu çalıştırmadan önce mevcut olmalıdır. Bir yan not olarak

$ echo "" | tee /home/jem/rep_0[1-3]/logs/SystemOut.log > /dev/null 

, sen echo geçmek "" gereksiz olduğunu.

Sorunuzla doğrudan alakalı değil, ancak bash genişletmeye güvenmiyorsanız, birden fazla boruya sahip olabilirsiniz.

$ echo hello > foo > bar > baz 
$ cat foo bar baz 
hello 
hello 
hello 
1

Bunu yapabilirsin:

echo "" | tee /home/jem/rep_0{1..3}/logs/SystemOut.log 

, Stdout'a çıkışını bastırmak yukarıdaki komutların sonuna bu eklemek için:

> /dev/null 

sorunuzu echo komutu (boş tırnak gerektirmez) sadece dosyalara yeni satır koyar. Boş dosyalar oluşturmak istiyorsanız, touch komutunu kullanın.

+0

Sadece yeni bir satır ile içeriği üzerine yazar. –

1

Aynı sorularım vardı ve gösterilmediği için joker karakterle örnek eklemek istedim. Bence bu aradığınız şey:

+0

tam olarak neye ihtiyacım var, mükemmel. – PoweredByRice