I want to list all hidden files and directories and then save result to file.
Is there any command for this?
If using GNU find, you can do
find /path -path '*/.*' -ls | tee output-file
Edit
To avoid to show non-hidden items contained in hidden directories
find /path -name '.*' >output-file
(as noted, tee could be avoided if you do not need to see the output, and -ls option should be used only if required).
-path is POSIX since 2008. -ls is not standard but quite common.
To list the hidden files and directories in the current directory, including . and ..:
echo .*
To list the hidden files and directories in the current directory and its subdirectories recursively:
find . -name '.*'
If you want to save the results to a file, use a redirection:
find . -name '.*' >output-file.txt
find . -name '.?*' avoids listing the current directory, designated by .
With zsh (using the glob qualifier D):
print -rl ./**/.*(D)
To include non-hidden files in hidden directories:
setopt extendedglob
print -rl ./**/*~^*/.*(D)
You can actually put the same argument multiple times in the same command line:
find /storage/????-????/ -iname '.*' -iname "*" | tee -a file-list-micSD-20190801163729.fli
The tee -a command is able to display the command's output (or stdout) simultaneously whie writing it to a file. The -a options prevents clobbering and does append the information to the target output file instead.
/storage/????-????/ is an example path. It is the path to the MicroSD card of newer Android Mobile phones (there is also a terminal application for Android, with fewer commands but still many and significantly increased since Android 6.0). The MicroSD card was formerly /storage/extSdCard. Now, it is the volume serial number.