Afficher uniquement les files cachés (files point) dans l'alias ls

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 '/$'