如何在Linux或Unix上显示递归目录列表
时间:2020-01-09 10:39:45 来源:igfitidea点击:
如何在macOS Unix系统上看到递归目录列表?
在Linux中,如何获取递归目录列表?
简介如果您想接收列表,则所有目录和文件都将递归尝试以下命令。
什么是文件的递归列表?
递归意味着Linux或Unix命令可与目录的包含一起使用,并且如果目录包含子目录和文件,则该命令也可对这些文件(递归)起作用。
假设您具有以下目录结构:
tree dir1
从上面的输出中可以明显看出,运行tree dir1
给出了dir1目录及其子目录和文件的列表。
基本目录为dir1。
然后,您拥有所有子目录。
所有所有子目录都有其他文件和目录(例如大目录),依此类推。
您可以使用各种Linux命令以递归方式遍历每个目录,直到到达目录树的末尾为止。
那时,Linux命令返回到树中的一个分支,如果有的话,它会对所有子目录执行相同的操作。
如何在Linux或Unix中获取递归目录列表
尝试以下任一命令:
ls -R
:使用ls命令获取Linux上的递归目录列表find/dir/-print
:运行find命令以查看Linux中的递归目录列表du -a .
:执行du命令以查看Unix上的递归目录列表
让我们看一些示例,以获取Unix或Linux系统中的递归目录。
Linux递归目录列表命令
执行以下命令:
ls -R ls -R /tmp/dir1
使用ls -R命令的Linux递归目录列表。
Unix递归目录列表命令
因为并非所有版本的Linux,macOS,* BSD和类Unix系统都为ls命令提供-R选项。
尝试使用find命令:
find . -print find /tmp/dir1 -print find /tmp/dir1/ -print -ls
使用find命令在Linux或Unix中列出递归目录
如何在目录中递归列出所有文件
我们的最后一个示例使用du命令,如下所示:
du -a . du -a /tmp/dir1/
您还可以如下使用tree命令:
tree . tree /tmp/dir1/
递归处理文件
可以在文件上递归运行命令。
语法为:
my-command-here $(find /dir/ -name 'pattern' -print) rm -i $(find /home/theitroad/ -name '*.bak' -print)
当然,您可以使用find本身运行命令:
find /dir1/ -name 'pattern' -print -exec command ; find /dir1/ -name 'pattern' -print -exec command {} ; find /dir/2/foo/bar -name "*.pl" -exec rm -rivf {} \; find /dir1/ -type f -name "*.doc" -exec rm -fiv {} \; ## find file recursively and delete them ## find /dir1/ -name 'pattern' -print -delete