Saya mencoba bermigrasi dari bash
ke fish
.
Untuk apa fish
analog itu shopt
? Saya mencoba meniru garis ini dari .bashrc
:
shopt -s dotglob # for mv * see hidden files
Saya mencoba bermigrasi dari bash
ke fish
.
Untuk apa fish
analog itu shopt
? Saya mencoba meniru garis ini dari .bashrc
:
shopt -s dotglob # for mv * see hidden files
Jawaban:
Ini disengaja. Sebagian besar waktu pengguna tidak ingin secara tidak sengaja mencocokkan file tersembunyi yang tidak terlihat untuk ls
(tanpa -a
). Biasanya, file disembunyikan karena suatu alasan, bukan hanya untuk menjebak Anda. Juga, jika *
akan cocok dengan file yang tersembunyi, mencocokkan file yang tidak tersembunyi akan terlalu rumit.
Namun, tidak seperti bash shopt -s dotglob
tidak diperlukan untuk mencocokkan file yang tersembunyi. Dalam bash, shopt -s dotglob
adalah satu - satunya cara untuk mencocokkan setiap file dalam direktori tanpa sengaja mencocokkan .
atau ..
. Namun, cangkang ikan tidak pernah bisa cocok .
atau ..
dengan gumpalan, oleh karena itu itu bukan masalah (jika Anda benar-benar perlu mencocokkan .
atau ..
karena alasan konyol, katakan saja secara eksplisit). Selain itu, ikan mencoba menghindari memiliki opsi oleh desain, jadi tidak punya dotglob
.
Untuk mencocokkan setiap file dalam direktori, Anda mungkin ingin menggunakan ekspansi braket untuk mendeteksi file yang dimulai dengan titik, dan yang tidak. {.,}
adalah ekspansi braket yang cocok dengan titik yang mungkin ada atau tidak ada. Bintang setelah itu cocok dengan segalanya. Karena gumpalan pada ikan tidak bisa cocok .
atau ..
, kode berikut cocok dengan semuanya kecuali untuk dua direktori (yang sayangnya cocok, jika Anda menggunakan kode di bawah ini)
cat {.,}*
{,.}*
secara manual.