Bash noclobber seçeneğini nasıl geçersiz kılabilirim?


17

Bu bash noclobberseçenek, birinin yeniden yönlendirmeli dosyaların üzerine yazmasını engeller. Ama bazen gerçekten istiyorum. cshbenzer bir seçeneğe sahiptir ve !dosya adlarından önce a koyarak geçersiz kılınabilir . Bunu yapmanın bir yolu var mı bash?

Yanıtlar:


19

Evet. |Form oluşturmak için yeniden yönlendirme operatörüne ekleyin >|. Bu, Bash Referans Kılavuzunun § 3.6.2'sinde , qv

Yeniden yönlendirme işleci '>' ise ve set yerleşkesi için noclobber seçeneği etkinleştirildiyse, adı sözcüğün genişletilmesinden kaynaklanan dosya varsa ve normal bir dosyaysa yeniden yönlendirme başarısız olur. Yeniden yönlendirme işleci '> |' veya yönlendirme işleci '>' ise ve noclobber seçeneği etkin değilse, sözcük adında dosya mevcut olsa bile yeniden yönlendirme denenir.

Noclobber seçeneği hakkında bu eğiticiyi ziyaret edin . Yardımcı olabilir.


3

İstediğiniz gibi |(" patlama") bashyerine ("boru") kullanın . Örneğin:!csh

echo done >| out

Dikkat edin, eğer yönlendirmek istiyorsanız stderretmek stdout ve geçersiz noclobber, ne >|&de &>|çalışacak; bunun yerine uzun formu kullanın:

cmd-with-errors done >| out 2>&1

Neden err &>| outişe yaramadığını biliyor musunuz ?
Sanghyun Lee
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.