Sto provando a migrare da bash
a fish
.
A cosa serve l' fish
analogo shopt
? Sto cercando di imitare questa riga dal mio .bashrc
:
shopt -s dotglob # for mv * see hidden files
Sto provando a migrare da bash
a fish
.
A cosa serve l' fish
analogo shopt
? Sto cercando di imitare questa riga dal mio .bashrc
:
shopt -s dotglob # for mv * see hidden files
Risposte:
Questo è intenzionale. Il più delle volte gli utenti non vogliono abbinare accidentalmente i file nascosti per i quali sono invisibili ls
(senza -a
). Di solito, i file sono nascosti per un motivo, non solo per trollare te. Inoltre, se *
corrispondesse a file nascosti, la corrispondenza di file non nascosti sarebbe troppo complicata.
Tuttavia, a differenza di bash, shopt -s dotglob
non è necessario abbinare i file nascosti. In bash, shopt -s dotglob
è l'unico modo per abbinare ogni file nella directory senza corrispondere accidentalmente .
o ..
. Tuttavia, la conchiglia non può mai abbinarsi .
o ..
con i globs, quindi questo non è un problema (se hai seriamente bisogno di abbinare .
o ..
per qualche motivo sciocco, dillo esplicitamente). Inoltre, il pesce cerca di evitare di avere opzioni in base alla progettazione, quindi non ha dotglob
.
Per abbinare ogni singolo file nella directory, è possibile utilizzare l'espansione parentesi per rilevare i file che iniziano con punti e quelli che non lo sono. {.,}
è l'espansione della parentesi che corrisponde al punto che può o non può esistere. La stella dopo corrisponde a tutto. Poiché i globs in fish non possono corrispondere .
o ..
, il codice seguente corrisponde a tutto tranne che a quelle due directory (che bash corrisponde tristemente, se si utilizza il codice seguente)
cat {.,}*
{,.}*
manualmente.