Linux使用简单的命令显示隐藏的文件和文件夹

时间:2020-01-09 10:41:58  来源:igfitidea点击:

在本文中,我们将介绍以下主题

  • 创建隐藏的文件和文件夹/目录

  • Linux显示隐藏的文件和文件夹/目录

  • Linux查找隐藏的文件和文件夹/目录

  • 检查隐藏文件和文件夹/目录的大小

本文中用于查看隐藏文件和文件夹的命令可在任何Linux平台(例如Ubuntu,Debian,Linux Mint,RHEL,CentOS,SuSE等)或者任何Unix节点(例如HP-UX,Solaris等)上使用。

创建隐藏文件

要"创建隐藏文件",我们只需要确保文件名以点字符("。
")开头即可。
在Linux中,任何以点号(。
)开头的文件名都被视为隐藏文件。
例如,其中我使用touch命令创建一个普通文件

# touch hidden_file

如我们所见,要列出文件,因为文件名不是以点号(.)开头,所以它不是隐藏的

# ls -l
total 0
-rw-r--r--. 1 root root 0 Jan 21 18:51 hidden_file

接下来,我们重命名该文件,并使其以(.)开头的.hidden_file。

# mv hidden_file .hidden_file

接下来,如果我们尝试列出可用文件,我们将不再看到hidden_file。

# ls -l
total 0

重要的提示:

在某些Linux或者Unix环境中,ls命令可能具有ls -a的别名,因此在这种情况下,即使我们执行ls或者ls -l,这也会显示隐藏文件。
例如,这里不带-a的ls命令将显示隐藏文件。
在这种情况下,从终端执行alias命令

# ls -l
total 68
drwxr-xr-x. 3 root root  4096 Jan 21 19:05 .
dr-xr-x---. 6 root root  4096 Jan 21 18:51 ..
drwxr-xr-x. 2 root root  4096 Jan 21 19:51 .hidden_directory
-rw-r--r--. 1 root root 54894 Jan 21 19:28 .hidden_file
-rw-r--r--. 1 root root     0 Jan 21 19:05 normal_directory
-rw-r--r--. 1 root root     0 Jan 21 19:05 normal_file

检查此节点上的别名

# alias ls
alias ls='ls -a'

如我们所见,ls命令有一个别名,因此默认情况下将其配置为隐藏文件和文件夹。
要删除此内容,请临时执行unlias ls

# unalias ls

接下来使用ls显示隐藏的文件和文件夹,现在可以正常工作,因为我们看不到隐藏的文件夹或者文件。

# ls -l
total 0
-rw-r--r--. 1 root root 0 Jan 21 19:05 normal_directory
-rw-r--r--. 1 root root 0 Jan 21 19:05 normal_file

这仅是针对当前会话的临时修复程序,我们需要检查为" alias"配置此设置的位置,它可能是"/etc/profile"或者"/etc/bashrc",具体取决于分布。

类似地,要创建隐藏文件,我们只需在文件名前面加上(。
),例如,使用文件名my_file创建隐藏文件:

# touch .my_file

创建隐藏的文件夹或者目录

在Linux或者Unix中"创建隐藏的文件夹或者目录"的步骤类似于创建隐藏的文件。
我们只需要确保文件夹名称以点(.)字符开头即可。

[root@server3 test]# mkdir .hidden_directory

现在,按预期方式列出当前目录中的可用文件,因为该文件夹是隐藏的,所以我们看不到任何目录/文件夹。
这样我们就可以其中创建隐藏文件夹。

[root@server3 test]# ls -l
total 0

Linux使用'ls'命令显示隐藏的文件和文件夹

  • 在这个例子中,我们将在Linux中使用ls命令来显示隐藏的文件和文件夹。

  • 我们可以将ls命令与-a一起使用,以显示所有文件,包括隐藏文件和文件夹。

  • 使用-a时,我们不会忽略以.开头的条目,这也意味着Linux会显示隐藏的文件和文件夹。

  • 例如,要显示我们在上述步骤中创建的隐藏文件和文件夹,请导航到目录并执行ls -a

  • 我们还使用了-l来提供长列表,因此我们使用了ls -al以长列表格式显示测试目录下的所有文件。

[root@server3 test]# ls -al
total 12
drwxr-xr-x. 3 root root 4096 Jan 21 19:05 .
dr-xr-x---. 6 root root 4096 Jan 21 18:51 ..
drwxr-xr-x. 2 root root 4096 Jan 21 19:02 .hidden_directory
-rw-r--r--. 1 root root    0 Jan 21 18:51 .hidden_file

如我们所见,我们能够使用ls -a显示隐藏的文件夹和文件,这是我们在本文前面创建的。

另请阅读:

什么是 。
和..在Linux或者Unix的每个目录下都可以看到ls -a命令吗?

[root@server3 test]# ls -al
total 8
drwxr-xr-x. 2 root root 4096 Jan 21 18:53 .
dr-xr-x---. 6 root root 4096 Jan 21 18:51 ..
-rw-r--r--. 1 root root    0 Jan 21 18:51 .hidden_file

Linux使用" find"命令显示隐藏的文件和文件夹

现在,使用" ls"命令,我们可以在一个目录中显示隐藏文件,或者在Linux和Unix中可以显示多个目录。
但是使用ls可以显示所有分区中的隐藏文件夹和文件。
其中我们可以在Linux或者Unix中使用" find"命令来"查找隐藏文件"。

现在,从"创建隐藏文件"和"创建隐藏目录"一章中,我们知道隐藏文件以点(.)开头字符。
因此,我们可以将此命令与find命令一起使用,以查找隐藏文件。

例如,要查找隐藏文件,请在/etc /目录下使用-type f,我们可以使用以下命令

# find  /etc/-type f  -name '.*'
/etc/selinux/targeted/.policy.sha512
/etc/skel/.kshrc
/etc/skel/.bash_profile
/etc/skel/.bashrc
/etc/skel/.bash_logout
/etc/.pwd.lock
/etc/.updated

其中我们仅使用-type f和以点(.)开头的任何文件名搜索文件。

在Linux show隐藏文件和文件夹中,我们可以对/usr下的find hidden folder使用-type d相同的命令。

# find  /usr/-type d  -name '.*'
/usr/java/jre1.8.0_172-amd64/.java
/usr/java/jre1.8.0_172-amd64/.java/.systemPrefs
/usr/local/avamar/etc/.tmp

其中如果不使用其他命令,就不能使用ls -a显示所有这些目录中的隐藏文件,因此find是在Linux或者Unix中查找隐藏文件夹和文件的更好选择。

检查隐藏文件和文件夹的大小

现在,一旦找到隐藏文件或者文件夹,我们可能还希望检查隐藏文件或者文件夹的大小。

例如,我们将在我们的~/test目录下找到隐藏文件。

[root@server3 test]# find . -type f  -name '.*'
./.hidden_file
./.hidden_directory/.hidden_file_2

因此,我们有两个隐藏文件,我们可以将ls与-Sh一起使用以检查隐藏文件的大小,但这又有其自身的挑战。

这里

  • -S表示按文件大小排序

  • -h表示人类可读格式的打印尺寸(例如1K 234M 2G)

我们使用ls -lSha来显示和检查隐藏文件的大小,但是如我们所见,ls只能识别当前文件夹中的" .hidden_file",却错过了.hidden_directory中可用的" .hidden_file_2"。

[root@server3 test]# ls -lSha
total 68K
-rw-r--r--. 1 root root  54K Jan 21 19:28 .hidden_file
drwxr-xr-x. 3 root root 4.0K Jan 21 19:05 .
dr-xr-x---. 6 root root 4.0K Jan 21 18:51 ..
drwxr-xr-x. 2 root root 4.0K Jan 21 19:51 .hidden_directory
-rw-r--r--. 1 root root    0 Jan 21 19:05 normal_directory
-rw-r--r--. 1 root root    0 Jan 21 19:05 normal_file

提示:

或者,我们可以使用ls -lSha .*,它还将检查子目录中的隐藏文件并打印其大小,但是同样,此工具不是很方便。

在Linux或者Unix中,我们将使用du命令来检查隐藏文件的大小。
du命令用于估计文件空间使用情况。
我们必须将du和find命令结合使用,首先要找到隐藏的文件和文件夹,然后使用du命令检查隐藏文件的大小。

例如,检查"/test"文件夹下隐藏文件的大小

[root@server3 test]# find ~/test/-type f  -name '.*' -exec du -ah  {} +
56K     /root/test/.hidden_file
984M    /root/test/.hidden_directory/.hidden_file_2

类似于检查/tmp文件夹下隐藏文件的大小

# find /tmp/-type f  -name '.*' -exec du -ah  {} +
4.0K    /tmp/smem/smem-1.4/.hg_archival.txt
4.0K    /tmp/smem/smem-1.4/.hgtags
4.0K    /tmp/test1/usr/lib/x86_64-linux-gnu/firmware-cna-emulex-2016.02.01-1.24/.cpq_package.inc
1.6M    /tmp/test1/usr/lib/x86_64-linux-gnu/firmware-cna-emulex-2016.02.01-1.24/.setup