Jika yang Anda maksud adalah telanjang -
di akhir tar
perintah, itu umum pada banyak perintah yang ingin menggunakan file.
Ini memungkinkan Anda untuk menentukan input atau output standar daripada nama file sebenarnya .
Itu kasus untuk contoh pertama dan ketiga Anda. Misalnya, cdrecord
perintah mengambil input standar (aliran image ISO yang dihasilkan oleh mkisofs
) dan menulisnya langsung ke /dev/dvdrw
.
Dengan cd
perintah, setiap kali Anda mengubah direktori, itu menyimpan direktori asal Anda. Jika Anda cd
menggunakan -
"nama direktori" khusus , ia menggunakan direktori yang diingat itu daripada yang asli. Anda dapat dengan mudah beralih di antara dua direktori dengan cukup cepat dengan menggunakan itu.
Perintah lain mungkin diperlakukan -
sebagai nilai khusus yang berbeda .
-
untuk cabang git, yaitu Anda dapat beralih kembali ke cabang sebelumnya dengangit checkout -
-
, Anda dapat menemukan penjelasannya di halaman manual.Ini bukan sihir. Beberapa perintah diartikan
-
sebagai pengguna yang ingin membaca dari stdin atau menulis ke stdout; tidak ada yang istimewa tentang itu untuk cangkang.sumber
cd -
;bash(1)
menanganicd -
seolah-olah Anda telah menuliscd $OLDPWD
.cd
- perintah built-in shell - menafsirkan tanda hubung itu sendiri. Tidak ada "ajaib" :-)Pengalihan dari atau ke
stdin
ataustdout
.Lihat: http://tldp.org/LDP/abs/html/special-chars.html#DASHREF2
sumber
<
,>
,|
, dll).-
artinya persis seperti yang diinginkan setiap perintah. Ada beberapa kesepakatan umum, dan Anda telah melihat contoh sebagian besar di jawaban lain, tetapi tidak satupun yang 100% universal.Tidak ada keajaiban tentang
-
karakter sejauh menyangkut cangkang (kecuali bahwa cangkang itu sendiri, dan beberapa perintah bawaannya seperticd
danecho
, gunakan dengan cara konvensional). Beberapa karakter, seperti\
,,'
dan"
, bersifat "ajaib", memiliki makna khusus di mana pun mereka muncul. Ini adalah "metakarakter shell".-
tidak seperti itu.Untuk melihat bagaimana sebuah perintah menggunakan
-
, baca dokumentasi untuk perintah itu .sumber
Keajaiban ada dalam konvensi. Selama ribuan tahun, orang telah menggunakan '-' untuk membedakan opsi dari argumen, dan telah menggunakan '-' dalam nama file yang berarti stdin atau stdout, sebagaimana mestinya. Jangan meremehkan kekuatan konvensi!
sumber
Ini berarti menggunakan aliran input standar program.
Dalam kasus
cd
, itu berarti sesuatu yang berbeda: ubah ke direktori kerja sebelumnya.sumber