Saya baru saja melihat ini ditulis;
$ some-command >| /tmp/output.txt
Pipa vertikal digunakan dalam pengalihan standar "pipa" output dari satu perintah ke yang lain, apakah >|
sebenarnya sama sekali tidak berguna karena akan sama dengan hanya >
dalam skenario ini?
bash
io-redirection
pipe
jwbensley
sumber
sumber
>|
di: stackoverflow.com/questions/818255/in-the-bash-shell-what-is-21/…Jawaban:
Ini tidak berguna - ini adalah bentuk khusus dari
>
operator pengalihan polos (dan, mungkin membingungkan, tidak ada hubungannya dengan pipa).bash
dan sebagian besar shell modern lainnya memiliki opsinoclobber
, yang mencegah pengalihan dari menimpa atau menghancurkan file yang sudah ada. Misalnya, jikanoclobber
benar, dan file/tmp/output.txt
sudah ada, maka ini harus gagal:Namun, Anda dapat secara eksplisit mengesampingkan pengaturan
noclobber
dengan>|
operator pengalihan - pengalihan akan berfungsi, meskipunnoclobber
diatur.Anda dapat mengetahui apakah
noclobber
diatur di lingkungan Anda saat ini denganset -o
.Sebagai catatan sejarah, baik opsi "noclobber" dan fitur pintasnya berasal dari
csh
(akhir 70-an).ksh
disalin (awal 80-an) tetapi digunakan>|
sebagai ganti>!
. POSIX menentukanksh
sintaks (jadi semua shell POSIX termasuk bash, turunan abu yang lebih baru yang digunakan sebagai sh pada beberapa sistem mendukungnya). Zsh mendukung kedua sintaks. Saya tidak berpikir itu ditambahkan ke varian shell Bourne tetapi saya mungkin salah.sumber
sh
sudahnoclobber
, sejak sekitar Mei 2002.