云网牛站
所在位置:首页 > Linux命令 > 不使用ls命令列出目录内容,转而使用替代命令的方法

不使用ls命令列出目录内容,转而使用替代命令的方法

2019-04-03 10:42:54作者:秦风稿源:云网牛站

本文介绍10种替代ls命令列出目录内容的方法,使用printf、dir、find、stat、grep、lsattr、getfacl、for、Vim。ls命令是列出类Unix系统目录中文件和目录的最常用命令,但是,还有其他方法可以在不使用ls命令的情况下列出目录内容,即转而使用替代命令,以下就给你介绍。不过通常大多数Linux用户使用ls命令列出目录中的文件和目录,例如,我们可以使用以下命令显示名为ostechnix的目录的内容:

$ ls ostechnix/

不使用ls命令列出目录内容,转而使用替代命令的方法

如上图所示,这就是我们列出文件和目录的方式。

注:ls命令默认安装在几乎所有类Unix操作系统中,因此你可以简单地使用它来显示目录内容,如果你的系统中没有“ls”命令,请使用替代命令来执行。

 

1、使用echo命令列出文件

echo命令是最常用的内置命令,在shell脚本和批处理程序中用于打印给定的参数,可以将任何文本/字符串作为参数传递,echo命令将在标准输出或文件上显示它们,此命令不仅用于打印给定参数,还可用于列出文件。

要列出当前目录中使用的文件,只需输入:

$ echo *

不使用ls命令列出目录内容,转而使用替代命令的方法

要列出一个级别的所有文件,请使用以下命令:

$ echo */*

要列出隐藏文件,请运行:

$ echo * .*

有关更多详细信息,请参阅手册页,运行以下命令:

$ man echo

注:echo命令只显示文件,而不显示目录,没问题,以下方法介绍如何列出文件和目录。

 

2、使用printf命令列出文件和目录

printf命令用于格式化和打印文本,此命令将根据给定的格式打印给定的参数,或根据给定的选项执行。

要使用printf命令列出当前目录的内容,请运行:

$ printf '%s\n' *

不使用ls命令列出目录内容,转而使用替代命令的方法

与“echo”命令不同,print命令将同时显示文件和目录。

有关更多详细信息,请参阅手册页:

$ man printf

 

3、使用dir命令列出文件和目录

dir命令是另一个显示目录内容的Linux命令。

要列出当前目录内容,请运行:

$ dir

不使用ls命令列出目录内容,转而使用替代命令的方法

要列出特定目录的内容,只需将其路径作为参数传递,如下所示:

$ dir /home/sk/ostechnix

列出包括隐藏文件在内的所有内容:

$ dir -a

请参阅手册页以了解有关dir命令的更多信息:

$ man dir

 

4、使用find命令列出文件和目录

find命令用于搜索目录层次结构中的文件,不仅仅是文件搜索,我们还可以使用find命令列出目录内容,如下所示:

$ find -maxdepth 1

或者:

$ find .

不使用ls命令列出目录内容,转而使用替代命令的方法

第一个命令列出当前目录中一个级别的所有文件和目录,而第二个命令以递归方式列出所有文件和目录。

也可以列出特定目录的内容,运行:

$ find dir1/

参考:在Linux系统中使用ls、tree和find快速定位文件

 

5、使用stat命令列出文件和目录

stat命令用于显示文件和文件系统信息,使用此命令,我们可以查找文件属性,例如大小、权限、创建和访问日期等。

要使用“stat”命令列出文件和目录,运行:

$ stat -c '%A %n' *

不使用ls命令列出目录内容,转而使用替代命令的方法

stat命令不仅列出了当前目录的内容,还列出了权限,当想要查看包含权限的目录内容时,它非常有用。

有关stat命令的更多详细信息,请查看手册页:

$ man stat

 

6、使用grep命令列出文件和目录

grep命令用于使用正则表达式搜索文本文件,要使用grep命令列出目录内容,只需运行:

$ grep -l '.*' ./*

不使用ls命令列出目录内容,转而使用替代命令的方法

参考:在Linux系统下使用grep命令搜索文件的详细用法

 

7、使用lsattr命令列出文件和目录

lsattr命令用于列出Linux上文件和目录的属性。

要列出当前工作目录中的文件和目录,请使用lsattr命令:

$ lsattr ./*

不使用ls命令列出目录内容,转而使用替代命令的方法

正如你在输出中看到的那样,lsattr命令仅显示一个级别的内容,换句话说,它不会显示任何子目录及其内容和隐藏文件。

有关lsattr命令的详细信息,请查看手册页:

$ man lsattr

 

8、使用getfacl命令列出文件和目录

setfacl和getfacl是每个Linux系统管理员必须知道的最有用和最重要的命令,用于设置文件和目录的访问控制列表(ACL)。

要查看当前目录中的文件和目录列表,只需运行:

$ getfacl ./*

不使用ls命令列出目录内容,转而使用替代命令的方法

我最喜欢这个命令是它不仅列出目录内容,还列出其他有用的细节,如:文件/目录的所有者、可以访问它的组、对所有者,组和其他人的访问权限。

 

9、使用for循环列出文件和目录

列出目录内容的另一种方法是使用for循环,我在BASH测试了这个,它工作得很好:

$ for i in *; do echo $i; done

不使用ls命令列出目录内容,转而使用替代命令的方法

正如在上面的输出中看到的,我们可以使用for循环列出当前目录内容。

 

10.使用Vim编辑器列出文件和目录

Vim编辑器也可用于列出文件和目录,Linux中的所有内容都是文件,从技术上讲,目录是包含文件和/或子目录列表的文件。

要使用Vim编辑器列出当前目录的文件和目录,请使用以下命令:

$ vim .

请注意最后的点(.),参考:玩转Linux必备的Vim技能,一文读懂Vim的安装和配置,学习之法

要列出特定目录的内容,请执行以下操作:

$ vim <path-to-dir>

例如:

$ vim ostechnix/

不使用ls命令列出目录内容,转而使用替代命令的方法

只需使用向上/向下箭头即可浏览列表,要列出子目录内容,只需将鼠标光标放在其上,然后按Enter键。

 

相关主题

讲解在Linux命令行下使用ls命令列出文件的技巧

Linux命令子频道
精选文章
热门文章