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 opsi noclobber
, yang mencegah pengalihan dari menimpa atau menghancurkan file yang sudah ada. Misalnya, jika noclobber
benar, dan file /tmp/output.txt
sudah ada, maka ini harus gagal:
$ some-command > /tmp/output.txt
Namun, Anda dapat secara eksplisit mengesampingkan pengaturan noclobber
dengan >|
operator pengalihan - pengalihan akan berfungsi, meskipun noclobber
diatur.
Anda dapat mengetahui apakah noclobber
diatur di lingkungan Anda saat ini dengan set -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 menentukan ksh
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.
>|
di: stackoverflow.com/questions/818255/in-the-bash-shell-what-is-21/…