Próbuję migrację z bash
celu fish
.
Co to fish
jest analog shopt
? Próbuję naśladować tę linię z mojego .bashrc
:
shopt -s dotglob # for mv * see hidden files
Próbuję migrację z bash
celu fish
.
Co to fish
jest analog shopt
? Próbuję naśladować tę linię z mojego .bashrc
:
shopt -s dotglob # for mv * see hidden files
Odpowiedzi:
To celowe. Przez większość czasu użytkownicy nie chcą przypadkowo dopasować ukrytych plików, które są niewidoczne dla ls
(bez -a
). Zwykle pliki są ukryte z jakiegoś powodu, nie tylko po to, aby cię trollować. Ponadto, jeśli *
pasowałyby do ukrytych plików, dopasowanie nie ukrytych plików byłoby zbyt trudne.
Jednak w przeciwieństwie do bash shopt -s dotglob
nie jest konieczne dopasowanie ukrytych plików. W bash shopt -s dotglob
jest to jedyny sposób dopasowania każdego pliku w katalogu bez przypadkowego dopasowania .
lub ..
. Jednak skorupa ryb nigdy nie może się równać .
lub ..
z kulami, dlatego nie stanowi to problemu (jeśli poważnie potrzebujesz dopasować .
lub ..
z jakiegoś głupiego powodu, po prostu powiedz je wyraźnie). Poza tym ryba stara się unikać opcji według projektu, więc nie ma dotglob
.
Aby dopasować każdy pojedynczy plik w katalogu, możesz użyć rozszerzenia nawiasów, aby wykryć pliki zaczynające się od kropek i te, które nie są. {.,}
jest rozwinięciem nawiasu, który pasuje do kropki, która może istnieć lub nie. Gwiazda po tym pasuje do wszystkiego. Ponieważ globusy u ryb nie mogą się zgadzać .
lub ..
, poniższy kod pasuje do wszystkiego oprócz tych dwóch katalogów (które niestety pasują do bash, jeśli użyjesz kodu poniżej)
cat {.,}*
{,.}*
ręcznie globować .