afficher uniquement les files commençant par. (caché)

J'ai essayé d'afficher uniquement les files cachés mais je ne sais pas comment le faire.

Cela fonctionne (mais correspond également à des points dans d'autres endroits)

ls -la | grep '\.' 

A essayé d'append ^ mais n'a pas trouvé la solution.

ls -ld .* fera ce que vous voulez.

 find . -type f -name '\.*' -print 

Doit fonctionner si vous voulez listr tous les files cachés dans la hiérarchie des directorys.

Voici deux autres façons de find des files cachés uniquement.

 find . -maxdepth 1 -name ".*" -type f -ls 

ou

 find . -maxdepth 1 -name ".*" -type f -printf "%P \n" 

Utilisez -maxdepth pour spécifier jusqu'où vous voulez effectuer une search dans l'arborescence.

Une amélioration sur la réponse de Flup :

 ls -lad .[!.]* ..?* 

Cela listra tous les files dont le nom commence par un point et qui ne sont ni l'un ni l'autre . ni ..

Notez que si vous voulez placer la sortie de ls en grep (ce qui, comme souligné par devnull , n'est jamais une bonne idée), assurez-vous d'utiliser \ls ou command ls car si ls est aliasé il est sur Debian par exemple), sa sortie contient des séquences d'échappement ANSI pour créer une sortie colorée, ce qui triggersra votre grep si son model est ancré au début de la ligne.

Si vous voulez parsingr la sortie de ls , vous devez append ^ au début de la regex et ne pas utiliser l'option -l . En utilisant -l , chaque sortie de ligne commence par des informations d'autorisation de file ou de dossier, pas de nom de file ou de dossier. Donc, vous devriez utiliser comme ceci:

 ls -Ad | grep '^\.' 

Ou vous pouvez faire avec printf bash builtin:

 printf "%s\n" .* 

Si vous utilisez zsh , vous pouvez utiliser:

 print -l .* 

La solution de val0x00ff est vraiment bonne, mais elle oublie les directorys cachés.

Si vous voulez des files cachés et des directorys cachés , sans. et .. :

 find -maxdepth 1 -regex '\./\..+' -printf "%P\n"