J'essaie de migrer de bash
vers fish
.
À quoi est fish
analogue l ' shopt
? J'essaie d'imiter cette ligne de mon .bashrc
:
shopt -s dotglob # for mv * see hidden files
J'essaie de migrer de bash
vers fish
.
À quoi est fish
analogue l ' shopt
? J'essaie d'imiter cette ligne de mon .bashrc
:
shopt -s dotglob # for mv * see hidden files
Réponses:
C'est intentionnel. La plupart du temps, les utilisateurs ne veulent pas faire correspondre accidentellement les fichiers cachés qui sont invisibles pour ls
(sans -a
). Habituellement, les fichiers sont cachés pour une raison, pas seulement pour vous troller. De plus, si *
cela correspondait à des fichiers cachés, faire correspondre des fichiers non cachés serait trop délicat.
Cependant, contrairement à bash, il shopt -s dotglob
n'est pas nécessaire de faire correspondre les fichiers cachés. En bash, shopt -s dotglob
est le seul moyen de faire correspondre tous les fichiers du répertoire sans faire correspondre accidentellement .
ou ..
. Cependant, la coquille de poisson ne peut jamais correspondre .
ou ..
avec des globes, donc ce n'est pas un problème (si vous avez vraiment besoin de faire correspondre .
ou ..
pour une raison stupide, dites-les simplement explicitement). De plus, le poisson essaie d'éviter d'avoir des options par conception, donc il n'en a pas dotglob
.
Pour faire correspondre chaque fichier du répertoire, vous pouvez utiliser l'extension du support pour détecter les fichiers commençant par des points et ceux qui ne le sont pas. {.,}
est une extension de parenthèse qui correspond à un point qui peut ou non exister. L'étoile après tout correspond à tout. Parce que les globes dans fish ne peuvent pas correspondre à .
ou ..
, le code suivant correspond à tout sauf à ces deux répertoires (qui correspondent malheureusement à bash, si vous utilisez le code ci-dessous)
cat {.,}*
{,.}*
manuellement.