Linux/Unix递归查找并列出所有隐藏文件

时间:2020-01-09 10:45:56  来源:igfitidea点击:

如何查找并列出所有隐藏文件,包括Linux或者类似Unix的系统上的目录。如何递归列出所有隐藏的文件和目录?如何将结果保存到文本文件中?您需要使用" find"命令以递归方式列出Linux或者Unix之类的系统上所有隐藏文件。 。
您也可以使用ls命令列出隐藏文件。

在Linux或者Unix中什么是隐藏文件?

在基于Unix和Linux的系统中,隐藏文件只不过是文件名以.开头的文件。

使用ls命令看不到隐藏文件。

使用ls命令查看隐藏文件

您可以将-a选项传递给ls命令以查看隐藏文件:

ls -a

或者

ls -al

或者

ls -al | more

我在当前目录中有两个隐藏文件。
让我们运行以下ls命令以查看当前目录中的所有隐藏文件:

$ ls -d .[!.]?*
$ ls -l -d .[!.]?*
$ ls -l -d .?*

输出示例:

drwxr-x---  2 Hyman Hyman  4096 Dec  9 11:23 .android
drwx------  4 Hyman Hyman  4096 Oct 20 06:56 .ansible
-rw-r--r--  1 Hyman Hyman    96 Nov  6 14:13 .backup.conf
-rw-r--r--  1 Hyman Hyman    57 Nov  8 12:31 .bash_aliases
-rw-------  1 Hyman Hyman 56819 Jan  5 20:54 .bash_history
-rw-r--r--  1 Hyman Hyman   220 Oct 14 03:03 .bash_logout
-rw-r--r--  1 Hyman Hyman  4529 Jan  4 23:06 .bashrc
-rw-r--r--  1 Hyman Hyman  4165 Jan  4 23:06 .bashrc.backup
drwx------ 37 Hyman Hyman  4096 Dec 26 00:32 .cache
drwxr-xr-x  3 Hyman Hyman  4096 Oct 18 19:12 .cert
....
..
drwx------  4 Hyman Hyman  4096 Nov  9 19:16 .thunderbird
drwxr-xr-x  4 Hyman Hyman  4096 Nov  6 14:31 .vim
-rw-------  1 Hyman Hyman 28383 Jan  5 20:31 .viminfo
-rw-r--r--  1 Hyman Hyman   801 Jan  3 14:16 .vimrc
-rw-rw-r--  1 Hyman Hyman   383 Dec  2 16:44 .wget-hsts
-rw-------  1 Hyman Hyman    54 Oct 18 13:57 .Xauthority
-rw-r--r--  1 Hyman Hyman 39811 Nov 28 00:47 .zcompdump

其中ls选项如下:

  • -l:使用长列表格式。
  • -d:显示目录本身,而不是目录内容。
  • .[!.]?*或者.?*:强制ls只显示隐藏文件。

递归列出Linux/Unix上的所有隐藏文件和目录

find命令的基本语法如下:

find /dir/to/search/ -name ".*" -print

或者

find /dir/to/search/ -name ".*" -ls

仅搜索隐藏文件:

find /dir/to/search/ -type f -iname ".*" -ls

仅搜索隐藏目录:

find /dir/to/search/ -type d -iname ".*" -ls

使用find命令,如下所示:

find /dir/to/search -path '*/.*' -print
find /dir/to/search -path '*/.*' -ls

在此示例中,在$HOME中搜索所有隐藏的文件和目录:

find $HOME -name ".*" -ls

输出示例:

6553607    4 -rw-r--r--   1 admi     admi          100 Sep 22  2004 ./.cshrc
6553664    4 -rw-------   1 admi     admi         1024 Nov 17 04:40 ./.rnd
6553604    4 -rw-r--r--   1 admi     admi           18 Jan 20  2009 ./.bash_logout
6553665    4 drwx------   2 admi     admi         4096 Dec 18  2012 ./.gnupg
6553671    0 -rw-------   1 admi     admi            0 Dec 18  2012 ./.gnupg/secring.gpg
6553669    0 -rw-------   1 admi     admi            0 Dec 18  2012 ./.gnupg/pubring.gpg~
6553673    4 -rw-------   1 admi     admi          899 Dec 18  2012 ./.gnupg/pubring.gpg
6553667    8 -rw-------   1 admi     admi         7856 Dec 18  2012 ./.gnupg/gpg.conf
6553668    4 -rw-------   1 admi     admi         1200 Dec 18  2012 ./.gnupg/trustdb.gpg
6553602   20 -rw-------   1 admi     admi        17462 Apr  7 10:55 ./.bash_history
6553610    4 drwx------   3 admi     admi         4096 Jan 16  2013 ./.config
6553660    4 drwx------   2 admi     admi         4096 Jan 16  2013 ./.config/htop
6553681    4 -rw-r--r--   1 admi     admi          597 Apr 11  2013 ./.config/htop/htoprc
6553723   12 -rw-------   1 admi     admi         9629 Mar 30 23:56 ./.viminfo
6553615    4 drwxr-xr-x   3 admi     admi         4096 Nov 29  2012 ./.original-configs

要将结果保存到名为foo.txt的文件中,请按如下所示使用重定向:

## save result to a special file  called foo.txt ##
find $HOME/projects/ -name ".*" -ls > foo.txt
cat foo.txt