linuxtree命令详解

Linux系统中的tree命令以树的形式列出目录内容,以显示文件系统结构。
下面详细介绍一下tree命令的内容:1.tree命令简介:下tree命令。
Linux以树形图逐级列出目录内容。
2、使用命令:tree[选项]...[文件]...3、参数说明:-a打印所有文件,包括隐藏文件和目录-C为文件和目录列表添加颜色,方便查看区分文件类型-d仅列出打印目录名称,不打印内容-D列出文件或目录更改时间-L更大的目录树显示深度-p打印结构还打印文件权限-l遵循目录的符号链接,就好像它们是目录一样。
避免导致递归循环的链接-f显示每个文件的完整路径前缀-F在每个条目后添加文件类型指示符(例如目录为/)示例:-L参数,显示目录的深度

Linux中find命令的用法汇总

Linux系统中的find命令在搜索文件时非常有用和方便。
它可以根据不同的标准查找文件,例如权限、所有者、修改日期/时间、文件大小等。
在本文中,我们将学习如何使用find命令及其提供的选项来查找文件。
在大多数Linux发行版中,您可以直接使用find命令,无需任何安装操作。
如果你想在Linux系统的命令行中特别高效,那么find就是你必须掌握的命令之一。
find命令的基本语法如下:$find[路径][选项][表达式]一、基本用法1、列出当前目录及子目录中的所有文件。
该命令将列出当前目录和子目录中的所有文件。
$find../abc.txt./subdir./subdir/how.php./cool.php该命令与以下命令$find.$find.-print2效果相同。
找到一个特殊的目录或路径。
以下命令将查找当前目录下test文件夹中的文件,默认列出所有文件。
$find./test./test./test/abc.txt./test/subdir./test/subdir/how.php./test/cool.php以下命令用于查找指定名称的文件。
$find./test-name"abc.txt"./test/abc.txt您还可以使用通配符$find./test-name"*.php"./test/subdir/how.php./test/cool。
php请注意,将递归搜索所有文件夹。
因此,这是查找具有特定扩展名的文件的非常强大的方法。
如果我们尝试搜索/文件夹(即根目录),则会搜索整个文件系统,包括挂载的设备和网络存储设备。
所以请谨慎使用。
当然,您可以随时按Ctrl+C终止命令。
注意:指定文件夹时(例如示例中的“./test”文件夹),可以忽略尾部斜杠。
但是,如果该文件夹是指向另一个位置的链接(符号链接),则必须在末尾写一个斜杠才能使查找命令正常工作(find./test/)。
忽略大小写查找文件名时忽略大小写通常很有用。
要忽略大小写,只需使用iname选项而不是name选项。
$find./test-iname"*.Php"./test/subdir/how.php./test/cool.php对于用双引号或单引号包围匹配模式(文件名参数)总是有用的。
不这样做有时可以很好地工作,有时会产生奇怪的结果。
3.限制目录搜索的深度。
find命令默认会递归搜索整个目录树,非常耗时且消耗资源。
幸运的是,目录搜索的深度可以手动指定。
例如,如果我们只想查找一层或两层内的子目录,我们可以通过maxdepth选项来指定。
$find./test-maxdepth2-name"*.php"./test/subdir/how.php./test/cool.php$find./test-maxdepth1-name*.php./test/cool.php中两个例子中,maxdepth指定为1,表示只搜索一级内的子目录,即只搜索当前文件夹。
当我们只想在当前目录中搜索,而不是搜索整个目录树时,此选项特别有用。
与maxDepth选项类似,还有另一个选项称为MinDepth。
顾名思义,它至少要到达第N级子目录后才会开始搜索文件。
4、反向搜索除了查找符合条件的文件外,还可以查找所有不符合条件的文件。
当我们知道要从搜索中排除哪些文件时,此选项就会发挥作用。
$find./test-not-name"*.php"./test./test/abc.txt./test/subdir在上面的示例中,我们查找扩展名为php以外的所有文件和文件夹。
我们还可以使用感叹号!而不是-不。
find./test!-name"*.php"5、结合多个搜索条件,我们可以同时使用多个搜索条件来指定文件名并排除某些文件。
$find./test-name'abc*'!-name'*.php'./test/abc.txt./test/abc上面的命令查找所有以abc开头且不包含.php扩展名的文件。
此示例显示find命令附带的搜索表达式有多么强大。
OR运算符当我们使用多个搜索条件时,find命令会通过AND运算符将它们组合起来,即只列出满足所有条件的文件。
但是,如果我们需要基于OR运算进行搜索,则可以添加-o开关。
$find-name'*.php'-o-name'*.txt'./abc.txt./subdir/how.php./abc.php./cool.php上面的命令查找所有以.php结尾的文件或以.txt结尾的文件。
6.只搜索文件或目录。
有时我们只是想通过某个名称找到对应的文件或目录。
我们可以轻松实现这个要求。
$find./test-nameabc*./test/abc.txt./test/abc仅搜索文件$find./test-typef-name"abc*"./test/abc.txt仅搜索目录$find./test-typed-name"abc*"./test/abc非常有用且方便!7.同时在多个目录中搜索。
如果你想在两个不同的目录中搜索,命令非常简单。
检查$find./test./dir2-typef-name"abc*"./test/abc.txt./dir2/abcdefg.txt它确实列出了给定两个目录中的文件。
8、查找隐藏文件在Linux系统中,隐藏文件的名称以英文句点开头,即。
因此,要列出隐藏文件,只需添加一个简单的文件名过滤器即可。
$find~-typef-name".*"2、根据文件权限和属性进行搜索9、查找指定权限的文件通过指定perm选项,我们可以查找指定权限的文件。
下面的示例查找具有0664权限的所有文件。
$find.-typef-perm0664./abc.txt./subdir/how.php./abc.php./cool.php我们可以使用这个命令来查找权限错误的文件,这可能会导致安全问题。
可以与反向查找结合进行权限检查。
$find.-typef!-perm0777./abc.txt./subdir/how.php./abc.php./cool.php10.查找具有SGID/SUID属性的文件以下命令查找所有具有644权限和SGID属性的文件。
#find/-perm2644我们还可以使用1664来查找设置了粘性位的文件。
除了接受数字参数之外,#find/-perm1644perm选项还接受chmod命令中的模式字符串。
在下面的查找中,我们使用另一种语法来替换数字。
$find/-maxdepth2-perm/u=s2/dev/null/bin/mount/bin/su/bin/ping6/bin/fusermount/bin/ping/bin/umount/sbin/mount.ecryptfs_private注意:由于权限不足,某些目录会拒绝访问。
命令中的2/dev/null用于清除输出中错误的访问结果。
11.查找只读文件$find/etc-maxdepth1-perm/u=r/etc/etc/thunderbird/etc/brltty/etc/dkms/etc/phpmyadmin...outputtruncated...12.查找可执行文件$find/bin-maxdepth2-perm/a=x/bin/bin/preseed_command/bin/mount/bin/zfgrep/bin/tempfile...输出被截断...3.根据文件所有者和用户组进行搜索13.查找属于特定用户的文件文件在当前目录中搜索属于bob的文件。
$find.-userbob../abc.txt./abc./subdir./subdir/how.php./abc.php在指定用户的同时,我们还可以指定文件名。
$find.-userbob-name'*.php'很容易看出,我们可以通过添加过滤条件来缩小要查找的文件的范围。
14.查找属于特定用户组的文件#find/var/www-groupdeveloper4.根据日期和时间进行搜索除了上面介绍的搜索条件外,另一个很好的搜索条件是文件的修改和访问时间(日期)文件。
当我们想要找出哪些文件在一定时间内被修改过时,这个搜索条件会非常方便。
让我们看几个例子。
15.查找过去N天内修改过的文件#find/-mtime5016。
查找过去N天内访问过的文件#find/-atime-5017。
查找具有以下内容的文件在一定时间内被修改过#find/-mtime+50-mtime-10018。
查找在过去N分钟内状态发生更改的文件。
$find/home/bob-cmin-6019.查找内容在过去1小时内被修改的文件。
#find/-mmin-6020。
查找过去1小时内访问过的文件#find/-amin-605.根据文件大小搜索21.查找指定大小的文件$find/-size50M22.搜索具有特定大小的文件$find/-size+50M-size-100M23范围内的文件。
查找最大和最小的文件我们可以将find命令与ls和sort命令结合起来查找最大或最小的文件。
以下命令使用sort命令的-r选项,该选项按从大到小的降序对项目进行排序。
通过head命令过滤后,会显示当前目录及子目录下最大的5个文件。
命令的执行需要一段时间,搜索速度取决于文件总数。
$find.-typef-execls-s{}\;|sort-n-r|head5同样,我们可以去掉sort命令的-r选项,以升序排序,从而显示最小的5个文件。
$find.-typef-execls-s{}\;|sort-n|head524.查找空文件和空目录。
查找空文件:#find/tmp-typef-empty。
查找空目录:$find~/-typed-empty。
很简单!6.高级操作find命令不仅可以根据特定条件查找文件,还可以使用任何Linux命令对找到的文件进行操作。
下面给出两个例子。
25、使用ls命令列出文件信息。
我们使用find命令查找文件后,只能看到文件路径。
如果想进一步查看文件信息,可以结合ls命令。
$find.-execls-ld{}\;drwxrwxr-x4enlightenedenlightened4096Aug1119:01.-rw-rw-r--1enlightenedenlightened0Aug1116:25./abc.txtdrwxrwxr-x2enlightenedenlightened4096Aug1116:48./abcdrwxrwxr-x2enlightenedenlightened4096Aug1116:26./subdir-rw-rw-r--1enlightenedenlightened0Aug1116:26./subdir/how.php-rw-rw-r--1enlightenedenlightened29Aug1119:13./abc.php-rw-rw-r--1enlightenedenlightened0Aug1116:25./cool.php26。
删除找到的文件以下命令将删除tmp目录中扩展名为.txt的文件。
$find/tmp-typef-name"*.txt"-execrm-f{}\;我们也可以删除该目录,只需将-type后面的f改为d,并在rm命令后面加上-r即可。
$find/tmp-typed-name"dirToRemove"-execrm-r-f{}\;本文由Wray翻译,略有删减。
考虑到原文存在一些错误,为便于读者理解,采用意译。
有不足之处请指出,谢谢。