Linux程序设计(Linux shell编程的例子:获取文件列表)


各位看官们,咱们今天还是接着上一回的内容,列举具体的例子给大家。闲话休说,言归正转。


看官们在实际的工作中可能遇到过这样的问题:想获取某个目录下的所有文件列表。这时怎么办呢?总不

能一个一个地找出来吧,这是蛮力法,目录下的文件少还行,文件多的话,实在是让人抓狂呀。咱们今天

就介绍一种获取文件列表的方法。


各位看官们,打开终端,在终端中输入:find /home/test/然后按下回车键执行该命令。这时会在终端

中显示命令执行结果,也就是输出/home/test/目录下的所有文件。我在/home/test/中存放着3个文件

它们分别是a.c b.sh c.txt。所以得到的结果如下:

/home/test/a.c

/home/test/b.sh

/home/test/c.txt


看官们,有时候文件多了,在终端的中显示不完整,这时我们可以把命令的结果通过重定向符定向到文件

中。这样你可以打开文件查看命令结果,也就是目录下的文件列表。命令如下:

find /home/test/ >file_list.txt

这里没有给file_list.txt指定目录,它默认在当前目录中,也就是/home/test/目录中。


看官们可以执行一下这个命令,然后打开file_list.txt文件,看看得到的结果和刚才的结果是否一致。完

全一致!下面已经有人说话了,这们看官真是手快呀。


“如果我只想要.sh文件的列表,怎么办呢?”又有看官说话了。只要是看官提出的需求,咱们都满足。


这个问题,咱们使用find命令的-name选项就可以实现。命令如下:

find /home/test/ -name "*.sh"

在终端中执行该命令,可以输出结果:/home/test/b.sh。


咱们在这里做一些补充说明,有时候需要获得多种文件类型的文件列表时,可以把多个文件类型通过o连接

在一起,例如:find /home/test/ -name "*.sh" -o -name "*.c".在终端中执行该命令可以得到以下的结果:

/home/test/a.c

/home/test/b.sh


当然,我们的实验中只有3个文件,如果看官们的目录中文件比较多的话,可以把命令的结果通过重定向符

定向到文件中。命令如下:

find /home/test/ -name "*.sh" -o -name "*.c" >file_list.txt

看官们可以执行一下这个命令,然后打开file_list.txt文件,看看得到的结果和刚才的是否一致。


各位看官们,今天的例子就到此为止,欲知后面还有什么好的例子,且听下回分解。

你可能感兴趣的:(shell编程例子,获取文件列表)