威尼斯wns.9778官网活动_vnsc威尼斯城官网

热门关键词: 威尼斯wns.9778官网活动,vnsc威尼斯城官网
当前位置:威尼斯wns.9778官网活动 > 计算机教程 > 威尼斯wns.9778官网活动Linux find 命令用法总结

威尼斯wns.9778官网活动Linux find 命令用法总结

文章作者:计算机教程 上传时间:2019-05-31

在Linux操作系统中,find命令非常强大,在文件与目录的查找方面可谓无所不至其极,如果能结合xargs命令使得,更是强大无比。

find 命令算是Linux下最常用的一个命令之一了,这里有一些常用用法的总结。

以下来看看find命令忽略目录查找的用法吧。

  1. 按文件名搜索。
    搜索当前目录下所有的以txt结尾的文件。第二个命令用了 -exec 参数,可以在对查找的所有文件执行一种操作。注意格式,空格和;一个都不能少。-name 的参数可以用正则表达式,例如第二个例子

例1,根据文件属性查找:

find ./* -name "*.txt"
find ./* -name "[ab]*.py"
find ./* -name "*.pyc" -exec rm {} ;

find . -type f -name "*config*" ! -path "./tmp/*" ! -path "./scripts/*" ! -path "./node_modules/*"

  1. 按修改时间查找
    查找当前目录下当天修改过的文件。-1 表示一天前修改过的文件。-2表示前两天。find ./* -mtime n n表示,对文件数据的最近一次修改是在 n*24 小时之前。 n 指n天以前,-n指n天以内(对 -mmin 是指n分钟), n 表示第n天,他们的含义都是不同的,注意区分。

Explanation:
find . - Start find from current working directory (recursively by default)
-type f - Specify to find that you only want files in the results
-name "*_peaks.bed" - Look for files with the name ending in _peaks.bed
! -path "./tmp/*" - Exclude all results whose path starts with ./tmp/
! -path "./scripts/*" - Also exclude all results whose path starts with ./scripts/

find ./* -mtime  60 -type f -print
find ./* -mmin -60 -type f -print
find ./* -mmin 60 -type f -print

例2,根据文件内容查找:

  1. 文件状态改变
    和 上个参数相比,基本道理都是一样的,只不过这个参数的含义是文件的权限被修改。改内容和改文件的权限是不一样的,这里指的是更改的是文件inode的数据,比如文件的权限,所属人等等信息。cmin 表示近60分钟内被改过权限,ctime 表示近几天内被修改过。

grep -n -r --exclude-dir='node_modules' --exclude-dir='logs' --exclude="nohup.out" 192 *

find ./* -cmin 60 -type f -print
find ./* -ctime -60 -type f -print

使用find命令在linux系统中查找文件时,有时需要忽略某些目录,可以使用 -prune 参数来进行过滤。不过必须注意:要忽略的路径参数要紧跟着搜索的路径之后,否则该参数无法起作用。

4
按照文件的所属group和 所属user 来查找-user 和 -nouser 最后一个命令找出当前已经被删除的系统用户的所有文件, - group 和 - nogroup 的功能类似。

例如:指定搜索/home/zth目录下的所有文件,但是会忽略/home/zth/astetc的路径:

find ./* -user fox
find ./* -nouser

find /home/zth -path "/home/zth/astetc" -prune -o -type f -print

5
find 避开某个目录,避开多个目录。其中 -a 表示 and 的意思,-o 表示or 的意思。

按照文件名来搜索则为:

find test -path "test/test4" -prune -o -print
find test ( -path test/test4 -o -path test/test3 ) -prune -o -print
find . ( -path ./modules -o -path ./framework -o -path ./utils -o -path ./config ) -prune -o -name "Bigger.*" -print

find /home/zth -path "/home/zth/astetc" -prune -o -type f -name "cdr_*.conf" -print

6
-perm 选项 指文件的访问权限

要忽略两个以上的路径如何处理?

find -perm 755 -print

find /home/zth /( -path "/home/zth/astetc" -o -path "/home/zth/etc" /) -prune -o -type f -print

7
实用inode 来查找文件编号。可以如下面所示在find命令中指定inode编号。在此,find命令用inode编号重命名了一个文件。你也可以通过rm来删除那个特殊的文件。

find /home/zth /( -path "/home/zth/astetc" -o -path "/home/zth/etc" /) -prune -o -type f -name "cdr_*.conf" -print

ls -i1 test*
16187429 test-file-name
16187430 test-file-name
find -inum 16187430 -exec mv {} new-test-file-name ;

注意:/( 和/) 前后都有空格。

8
找出当前目录下最大的5个文件

查找某个文件包含内容,以下语句可以解决目录带空格的问题:

find . -type f -exec ls -s {} ; | sort -n -r | head -5

本文由威尼斯wns.9778官网活动发布于计算机教程,转载请注明出处:威尼斯wns.9778官网活动Linux find 命令用法总结

关键词: