I tried to display only hidden files but don't know how to do it.
That is working (but matching also dots in other places)
ls -la | grep '\.'
Was trying adding ^ but didn't find the solution.
I tried to display only hidden files but don't know how to do it.
That is working (but matching also dots in other places)
ls -la | grep '\.'
Was trying adding ^ but didn't find the solution.
find . -type f -name '\.*' -print
Must work if you want list every hidden file down in the directory hierarchy.
An improvement on Flup's answer:
ls -lad .[!.]* ..?*
This will list all files whose name starts with a dot and that are neither . nor ...
Note that if you want to pipe the output of ls to grep (which, as pointed out by devnull, is never a good idea), make sure you use \ls or command ls because if ls is aliased to show you colored output (as it is on Debian for example), its output contains ANSI escape sequences to create colored output, which will trip up your grep if its pattern is anchored at the start of line.
If you want to parse ls output, you must add ^ at beginning of regex and don't use -l option. Using -l causes each line output start with file or folder permission information, not file or folder name. So you should use like this:
ls -Ad | grep '^\.'
Or you can do with printf bash builtin:
printf "%s\n" .*
If you use zsh, you can use:
print -l .*
Here are two other ways to find hidden files only.
find . -maxdepth 1 -name ".*" -type f -ls
or
find . -maxdepth 1 -name ".*" -type f -printf "%P \n"
Use -maxdepth to specify how far you want to search in the directory tree.
The solution of val0x00ff is really good, but it forgets hidden directories.
If you want hidden files and hidden directories, without . and .. :
find -maxdepth 1 -regex '\./\..+' -printf "%P\n"
Below one is much compact and support many variants
1) Display hidden files, directories and sub-directories
find . | grep "^\./\."
2) Display hidden directories and sub-directories only
find . -type d | grep "^\./\."
3) Display hidden files only in current and sub-directories
find . -type f | grep "^\./\."
4) Display hidden files and directories in current folder
find . -maxdepth 1 | grep "^\./\."
You can try:
find . -maxdepth 1 -type f -name '\.*' -print
find . -maxdepth 1 \( -type f -o -type d \) -name '\.*' -print
Of course you can use different maxdepth values or remove it completely. Very helpful if you want to explore between directories (-type d) or regular files (type f) or both, and combine with other functions like:
(e.g. last modified time, based on @piroux example - completed by @jeroen-wiert-pluimers )
find . -maxdepth 1 \( -type f -o -type d \) -name '\.*' -exec stat -c %y {} \; -printf "%P\t"
You can try :
ls -a |grep -E "^\."
^ indicates it's the beginning of content with regexp
Try this:
ls -ap | grep -v / | grep '^\.'