J'utilise la command
ls -a | grep '^\.'
pour ne montrer que les files cachés. J'ai ajouté la ligne
alias hidden='ls -a | grep '^\.'' # show only hidden files
au file .bash_aliases
mais cela ne fonctionne pas. C'est probablement le problème avec '
caractère '
.
Pourriez-vous s'il vous plaît m'aider à écrire le bon alias?
Soit faire la paire interne de guillemets doubles:
alias hidden='ls -a | grep "^\."'
Ou faire la paire extérieure de guillemets doubles:
alias hidden="ls -a | grep '^\.'"
Ou faire toutes les guillemets doubles et échapper à la paire intérieure:
alias hidden="ls -a | grep \"^\.\""
Ou faites-en une fonction, de sorte que vous pouvez passer quelques arguments lors de l'appel:
hidden() { ls -a "$@" | grep '^\.'; }
Demander au shell de listr les files de points et de ne pas voir dans les directorys:
ls -d .*
ls -Ad .* #This will list all the hidden files & directories while retaining the color & formatting
OU
Pour créer un alias du même:
alias lh='ls -Ad .*'
OU
Même chose pourrait être fait via la command grep et l'opérateur de pipe; mais il perdrait la couleur et la mise en forme:
ls -a|grep "^\."
OU
Via alias:
alias lh='ls -a|grep "^\."'
Vous pouvez utiliser des guillemets doubles:
alias hidden="ls -a | grep '^\.'"
ou concaténer plus de strings entre guillemets simples
alias hidden='ls -a | grep '\''^\.'\'
ou supprimer à tous les devis internes
alias hidden='ls -a | grep ^\\.'
Pour le dossier cela ne semble pas fonctionner avec moi, puisque ls -a
imprime deux (parfois plus de colonnes). Je vous recommand d'utiliser l'option -1
pour vous assurer que chaque file est dans sa propre ligne. Quelque chose comme ça:
alias hidden='ls -a1 | grep "^\."'
En le rendant légèrement plus compliqué, mais en évitant d' parsingr ls
.
llsh () { find "${@:-.}/" -maxdepth 1 -type f -name ".*" -ls; } lsh () { find "${@:-.}/" -maxdepth 1 -type f -name ".*" -print; }
La fonction deux shell utilisera find
pour générer une list de tous les files réguliers cachés dans le directory courant ou dans le directory indiqué sur la command line.
La fonction llsh
générera une "list longue" qui ne sera que légèrement plus verbeuse que ls -l
, alors que lsh
génère une list en une seule colonne comme ls -1
.
Votre soutien est-il? De l' man ls
:
-a, --all do not ignore ensortinges starting with . -A, --almost-all do not list implied . and .. $ ls --version ls (GNU coreutils) 8.5 Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redissortingbute it. There is NO WARRANTY, to the extent permitted by law. Written by Richard M. Stallman and David MacKenzie.
find . -type f -name ".*"
OU
find . -type f -name ".*" | while read file; do basename $file; done
ls -lart | sed -n "/ \.[A-Za-z0-9][A-Za-z0-9]*/p"
Il suffit de taper la command ci-dessous et ne pas confondre avec les trucs expliqués ci-dessus.
ls -A -1 -d -F .* | egrep -v '/$'