Linux文件查找命令find,xargs详述
Linux命令高级技巧使用find和xargs命令进行批量文件操作
Linux命令高级技巧使用find和xargs命令进行批量文件操作Linux操作系统具有强大的命令行工具,其中使用find和xargs命令可以实现批量文件操作。
本文将介绍这两个命令的使用方法和技巧,帮助读者灵活高效地处理大量文件。
一、find命令的使用方法find命令用于在指定目录及其子目录下搜索文件,并可以根据不同的条件进行过滤。
1. 查找文件要查找指定目录下的所有文件,可以使用以下命令:```find 目录 -type f```其中,目录为要查找的目录路径。
例如,要查找当前目录下的所有文件,可以使用以下命令:```find . -type f```2. 根据文件名过滤可以使用通配符来过滤特定文件名的文件。
例如,要查找以".txt"为后缀名的文本文件,可以使用以下命令:```find 目录 -type f -name "*.txt"```3. 根据文件大小过滤通过使用-size参数,可以根据文件大小来过滤文件。
以下是一些例子:- 查找大于10MB的文件:```find 目录 -type f -size +10M```- 查找小于1KB的文件:```find 目录 -type f -size -1k```4. 根据文件权限过滤可以使用-perm参数根据文件权限来过滤文件。
以下是一些例子:- 查找具有可执行权限的文件:```find 目录 -type f -perm /u+x```- 查找不具有写权限的文件:```find 目录 -type f ! -perm /u+w```5. 其他过滤条件find命令还支持其他各种过滤条件,如根据文件修改时间、访问时间等。
读者可以参考相关文档进一步了解。
二、xargs命令的使用方法xargs是一个很有用的命令,可以将标准输入的内容作为命令的参数,并且可以处理长参数列表。
1. 单行命令处理要将find命令的结果作为参数传递给其他命令,可以使用xargs命令。
如何使用find和xargs命令批量操作文件
如何使用find和xargs命令批量操作文件在日常的文件管理和操作中,我们经常遇到需要批量处理多个文件的情况。
在Linux系统中,find和xargs命令是两个非常常用的工具,它们可以结合使用来实现对文件进行批量操作。
本文将介绍如何使用find和xargs命令来批量操作文件,包括查找文件、删除文件、修改文件权限等。
1. 查找文件查找文件是使用find和xargs命令的常见操作之一。
通过find命令可以按照指定的条件搜索文件,并将搜索结果作为xargs命令的输入。
下面是一个查找文件的示例:```find /path/to/directory -name "*.txt" | xargs ls -l```上述命令会在指定的目录(/path/to/directory)中查找所有扩展名为.txt的文件,并通过xargs命令将搜索结果作为ls -l命令的参数,从而显示搜索到的文件的详细信息。
2. 删除文件使用find和xargs命令可以方便地批量删除多个文件。
下面是一个删除文件的示例:```find /path/to/directory -name "*.tmp" | xargs rm```上述命令会在指定的目录中查找所有扩展名为.tmp的文件,并通过xargs命令将搜索结果作为rm命令的参数,从而删除这些文件。
注意:在执行删除操作时,请谨慎操作,避免误删重要文件。
3. 修改文件权限使用find和xargs命令可以同时修改多个文件的权限。
下面是一个修改文件权限的示例:```find /path/to/directory -name "*.sh" | xargs chmod +x```上述命令会在指定的目录中查找所有扩展名为.sh的文件,并通过xargs命令将搜索结果作为chmod +x命令的参数,从而将这些文件设为可执行。
注意:在修改文件权限时,请明确目的,并避免给予不必要的权限。
Linux中文件查找命令总结
Linux中文件查找命令总结Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
很多时候我们会用到查找命令,但是很多用户不知道有哪些方法。
下面一起看看!Linux的查找命令有5个,分别如下:which:在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果;type:用于区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。
如果一个命令是外部命令,那么使用-p 参数,会显示该命令的路径,相当于which命令。
type命令其实不能算查找命令;whereis:只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s);locate:相当于find -name,可快速查找文件;find:最常用和最强大的查找命令,可以用它找到任何想找的文件。
注意:通常find不很常用,因为速度慢!常都是先使用whereis或者locate来检查,当真的找不到了,才用find查找。
是因为whereis与locate是利用数据库来查找数据,所以相当快速,而且没有实际查询硬盘,比较节省时间。
whereis和locate寻找的数据是由已创建的数据 /var/lib/ 中查找。
但是数据库的更新默认是每天更新一次(不同系统可能会有差异),所以当新建文件或删除文件后去查找该文件,whereis和locate会告诉你文件“not found”,因为必须更新数据库了。
要手动更新数据库的方法也很简单,直接输入updatedb即可。
updatedb命令回去读取/etc/updatedb.conf中的配置,然后去硬盘里面进行查找文件名操作,最后更新整个数据库文件。
下面详细讲解以上5个命令的使用:一、which:查找系统命令位置which命令在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
which命令的格式如下:which [-a] commandwhich命令的参数如下:-a:将所有由PATH目录中可以找到的命令均列出来,而不是只列出第一个被找到的命令。
Linux命令高级技巧使用find和xargs命令进行文件搜索和批量操作
Linux命令高级技巧使用find和xargs命令进行文件搜索和批量操作Linux命令高级技巧:使用find和xargs命令进行文件搜索和批量操作Linux操作系统以其强大和灵活的命令行工具而闻名,其中find和xargs命令是经常被使用的工具之一。
find命令用于在指定目录下查找文件,而xargs命令则用于将读取的数据作为参数传递给其他命令。
本文将介绍使用find和xargs命令进行文件搜索和批量操作的高级技巧。
一、使用find命令进行文件搜索find命令允许用户在指定目录下按照一定的条件搜索文件。
其基本语法如下:find [path] [options] [operation]其中,[path]表示要搜索的目录路径,[options]表示可选的搜索选项,[operation]表示要执行的操作。
1. 搜索指定类型的文件有时候我们只需要搜索特定类型的文件,例如搜索所有的文本文件。
可以使用-type选项指定文件类型。
例如,要搜索所有的文本文件,可以使用以下命令:find /path/to/directory -type f -name "*.txt"上述命令将在/path/to/directory目录下搜索所有的文本文件,并以".txt"为后缀。
2. 按照文件大小进行搜索通过使用-size选项,我们可以按照文件大小进行搜索。
例如,要搜索大于1MB的文件,可以使用以下命令:find /path/to/directory -type f -size +1M上述命令将在/path/to/directory目录下搜索大于1MB的文件。
3. 搜索特定时间范围内的文件我们还可以使用-mtime选项按照文件的修改时间进行搜索。
例如,要搜索最近7天内修改过的文件,可以使用以下命令:find /path/to/directory -type f -mtime -7上述命令将在/path/to/directory目录下搜索最近7天内修改过的文件。
linuxfind命令之xargs简单概述
linuxfind命令之xargs简单概述在使⽤ find命令的-exec选项处理匹配到的⽂件时, find命令将所有匹配到的⽂件⼀起传递给exec执⾏。
但有些系统对能够传递给exec的命令长度有限制,这样在find命令运⾏⼏分钟之后,就会出现溢出错误。
错误信息通常是“参数列太长”或“参数列溢出”。
这就是xargs命令的⽤处所在,特别是与find命令⼀起使⽤。
find命令把匹配到的⽂件传递给xargs命令,⽽xargs命令每次只获取⼀部分⽂件⽽不是全部,不像-exec选项那样。
这样它可以先处理最先获取的⼀部分⽂件,然后是下⼀批,并如此继续下去。
在有些系统中,使⽤-exec选项会为处理每⼀个匹配到的⽂件⽽发起⼀个相应的进程,并⾮将匹配到的⽂件全部作为参数⼀次执⾏;这样在有些情况下就会出现进程过多,系统性能下降的问题,因⽽效率不⾼;⽽使⽤xargs命令则只有⼀个进程。
另外,在使⽤xargs命令时,究竟是⼀次获取所有的参数,还是分批取得参数,以及每⼀次获取参数的数⽬都会根据该命令的选项及系统内核中相应的可调参数来确定。
使⽤实例:实例1:查找系统中的每⼀个普通⽂件,然后使⽤xargs命令来测试它们分别属于哪类⽂件命令:find . -type f -print | xargs file输出:[root@localhost test]# ll总计 312-rw-r--r-- 1 root root 302108 11-03 06:19 log2012.log-rw-r--r-- 1 root root 0 11-12 22:25 log2013.log-rw-r--r-- 1 root root 0 11-12 22:25 log2014.logdrwxr-xr-x 6 root root 4096 10-27 01:58 scfdrwxrwxrwx 2 root root 4096 11-12 19:32 test3drwxrwxrwx 2 root root 4096 11-12 19:32 test4[root@localhost test]# find . -type f -print | xargs file./log2014.log: empty./log2013.log: empty./log2012.log: ASCII text[root@localhost test]#实例2:在整个系统中查找内存信息转储⽂件(core dump) ,然后把结果保存到/tmp/core.log ⽂件中命令:find / -name "core" -print | xargs echo "" >/tmp/core.log输出:[root@localhost test]# find / -name "core" -print | xargs echo "" >/tmp/core.log[root@localhost test]# cd /tmp[root@localhost tmp]# ll总计 16-rw-r--r-- 1 root root 1524 11-12 22:29 core.logdrwx------ 2 root root 4096 11-12 22:24 ssh-TzcZDx1766drwx------ 2 root root 4096 11-12 22:28 ssh-ykiRPk1815drwx------ 2 root root 4096 11-03 07:11 vmware-root实例3:在当前⽬录下查找所有⽤户具有读、写和执⾏权限的⽂件,并收回相应的写权限命令:find . -perm -7 -print | xargs chmod o-w输出:[root@localhost test]# ll总计 312-rw-r--r-- 1 root root 302108 11-03 06:19 log2012.log-rw-r--r-- 1 root root 0 11-12 22:25 log2013.log-rw-r--r-- 1 root root 0 11-12 22:25 log2014.logdrwxr-xr-x 6 root root 4096 10-27 01:58 scfdrwxrwxrwx 2 root root 4096 11-12 19:32 test3drwxrwxrwx 2 root root 4096 11-12 19:32 test4[root@localhost test]# find . -perm -7 -print | xargs chmod o-w[root@localhost test]# ll总计 312-rw-r--r-- 1 root root 302108 11-03 06:19 log2012.log-rw-r--r-- 1 root root 0 11-12 22:25 log2013.log-rw-r--r-- 1 root root 0 11-12 22:25 log2014.logdrwxr-xr-x 6 root root 4096 10-27 01:58 scfdrwxrwxr-x 2 root root 4096 11-12 19:32 test3drwxrwxr-x 2 root root 4096 11-12 19:32 test4[root@localhost test]#说明:执⾏命令后,⽂件夹scf、test3和test4的权限都发⽣改变实例4:⽤grep命令在所有的普通⽂件中搜索hostname这个词命令:find . -type f -print | xargs grep "hostname"输出:[root@localhost test]# find . -type f -print | xargs grep "hostname"./log2013.log:hostnamebaidu=./log2013.log:hostnamesina=./log2013.log:hostnames=true[root@localhost test]#实例5:⽤grep命令在当前⽬录下的所有普通⽂件中搜索hostnames这个词命令:find . -name \* -type f -print | xargs grep "hostnames"输出:[root@peida test]# find . -name \* -type f -print | xargs grep "hostnames"./log2013.log:hostnamesina=./log2013.log:hostnames=true[root@localhost test]#说明:注意,在上⾯的例⼦中, \⽤来取消find命令中的*在shell中的特殊含义。
Linux命令高级技巧使用findgrepdiffxargs和rsync命令进行文件和比较搜索和同步
Linux命令高级技巧使用findgrepdiffxargs和rsync命令进行文件和比较搜索和同步Linux命令高级技巧:使用find、grep、diff、xargs和rsync命令进行文件比较、搜索和同步Linux操作系统作为一种开源的操作系统,以其高度可定制、灵活性强和安全性好等优势广受欢迎。
作为Linux用户,熟练掌握一些高级命令技巧,可以提高工作效率和解决问题的能力。
本文将介绍一些常用的Linux命令高级技巧,包括find、grep、diff、xargs和rsync命令的使用,帮助读者更好地进行文件比较、搜索和同步操作。
一、find命令find命令是Linux系统中一个非常有用的查找工具,可以根据指定的条件,在文件系统中搜索符合条件的文件。
其基本的语法格式如下:find [路径] [选项] [操作]其中,路径表示搜索的起始路径,选项用于指定搜索条件,操作表示对搜索到的文件进行的一些操作。
举个例子,如果我们要在当前目录及其子目录中查找文件名以".txt"结尾的文件,可以使用如下命令:find . -name "*.txt"该命令表示在当前目录及其子目录中查找文件名以".txt"结尾的文件,并输出相应的结果。
二、grep命令grep命令是Linux系统中一个强大的文本搜索工具,可以根据指定的模式在文件中查找符合条件的内容。
其基本的语法格式如下:grep [选项] [模式] [文件名]其中,选项用于指定搜索的方式和一些其他的参数,模式表示要搜索的内容的规则或关键词,文件名表示需要进行搜索的文件。
例如,我们要在文件file.txt中查找包含字符串"hello"的行,可以使用如下命令:grep "hello" file.txt该命令表示在文件file.txt中查找包含字符串"hello"的行,并输出相应的结果。
Linux命令高级技巧使用find与xargs进行批量文件操作
Linux命令高级技巧使用find与xargs进行批量文件操作在Linux系统中,find和xargs是两个非常实用的命令,用于批量处理文件和目录。
本文将介绍如何使用这两个命令来进行高级的文件操作。
一、使用find命令查找文件find命令用于在指定目录下查找文件,并可以按照不同的条件进行过滤。
下面是使用find命令的一些常用格式:1. 查找指定目录下的所有文件:```shellfind /path/to/directory```2. 查找指定目录下的所有以.txt结尾的文件:```shellfind /path/to/directory -name "*.txt"```3. 查找指定目录下的所有大于10M的文件:```shellfind /path/to/directory -size +10M```4. 查找指定目录下的所有修改时间在3天以前的文件:```shellfind /path/to/directory -mtime +3```二、使用xargs命令批量处理文件xargs命令用于从标准输入中读取数据,并将其作为参数传递给其他命令。
通过结合find和xargs命令,可以实现对查找到的文件进行批量处理。
下面是使用xargs命令的一些示例:1. 删除所有以.txt结尾的文件:```shellfind /path/to/directory -name "*.txt" | xargs rm```2. 复制所有以.jpg结尾的文件到指定目录:```shellfind /path/to/directory -name "*.jpg" | xargs -I {} cp {}/path/to/destination```3. 修改所有以.sh结尾的文件的权限为755:```shellfind /path/to/directory -name "*.sh" | xargs chmod 755```三、使用find和xargs命令的进阶技巧除了基本的文件操作,find和xargs命令还可以与其他命令结合,实现更复杂的批量处理。
linux 查找文件的几个命令
linux 查找文件的几个命令在Linux操作系统中,有许多不同的命令可以帮助用户找到他们正在寻找的文件。
以下是一些常用的Linux查找文件命令:1. find命令:find命令是Linux中最常用的查找文件命令之一。
它可以使用不同的选项进行灵活的文件查找。
例如,可以使用“-name”选项来按文件名查找文件,使用“-type”选项来按文件类型查找文件,还可以使用“-size”选项来按文件大小查找文件等等。
例子:```find /etc -name passwd```这个命令会在/etc目录下查找名为passwd的文件。
2. locate命令:locate命令是另一个常用的文件查找命令。
它使用数据库而不是实时查找来查找文件,因此比find命令更快。
但是,locate命令的数据库通常每天更新一次,所以可能会错过最新创建的文件。
例子:```locate passwd```这个命令会查找系统中所有包含“passwd”的文件。
3. whereis命令:whereis命令用于查找二进制文件、源代码文件和帮助文档文件的位置。
这个命令比较简单,只需要指定文件名即可。
例子:```whereis passwd```这个命令会查找系统中passwd的二进制文件、源代码文件和帮助文档文件的位置。
4. which命令:which命令用于查找可执行文件的位置。
它会在系统的PATH环境变量指定的路径中查找可执行文件。
例子:```which ls```这个命令会找到ls命令的可执行文件路径。
5. grep命令:grep命令是一个强大的文本搜索工具,可以用来在文件中查找特定的字符串。
它的功能不仅限于查找文件名,还可以在文件的内容中查找特定的字符串。
例子:```grep -r "hello" /home/user这个命令会在/home/user目录及其子目录中查找包含“hello”的文件。
6. du命令:du命令用于查看文件或目录的磁盘使用情况。
Linux命令高级技巧利用find与xargs命令进行批量文件权限的修改与管理
Linux命令高级技巧利用find与xargs命令进行批量文件权限的修改与管理Linux命令高级技巧:利用find与xargs命令进行批量文件权限的修改与管理在Linux系统中,文件权限的管理是系统管理员经常需要处理的任务之一。
当我们需要对大量的文件进行权限的修改时,手动一个一个文件修改权限显然是非常低效且耗时的。
本文将介绍一种高级技巧,使用Linux命令中的find与xargs命令来进行批量文件权限的修改与管理,以提高工作效率。
1. 查找文件首先,我们需要使用find命令定位到我们想要修改权限的文件所在的目录。
find命令可以根据一系列的条件来查找文件,在这里我们将使用权限作为条件进行查找。
例如,我们想要查找当前目录下所有的文本文件(扩展名为txt),并且权限为只读的文件,命令如下:```find . -type f -name "*.txt" -perm /a=r```上述命令中,“.”表示当前目录,“-type f”表示只查找文件而不包括目录,“-name "*.txt"”表示查找扩展名为txt的文件,“-perm /a=r”表示查找权限为只读的文件。
2. 修改文件权限找到满足条件的文件后,我们可以使用xargs命令将这些文件的路径传递给下一个命令,进而修改文件的权限。
例如,我们想要将上一步找到的只读文件的权限改为可读可写,命令如下:```find . -type f -name "*.txt" -perm /a=r | xargs chmod 644```上述命令中,“|”是管道操作符,将find命令的结果传递给xargs命令,“chmod 644”表示将文件的权限改为可读可写。
3. 批量修改权限有时候,我们可能需要对整个目录中的所有文件都进行权限的修改。
这时候,我们可以使用通配符来简化命令。
例如,我们想要将当前目录下所有的Shell脚本文件(扩展名为sh)的权限改为可执行,命令如下:```find . -type f -name "*.sh" | xargs chmod +x```上述命令中,“chmod +x”表示将文件的权限改为可执行。
linux用于查找文件中的内容的命令
linux用于查找文件中的内容的命令Linux 是一种开源的操作系统,被广泛应用于各种系统和服务器管理中。
在Linux 中,有很多强大的命令可以用来查找文件中的内容。
这些命令可以帮助用户快速找到需要的文件,并在文件中搜索指定的内容。
本文将介绍一些常用的Linux 命令,以及如何使用它们来查找文件中的内容。
1. `grep`命令: `grep` 是一种非常常用且强大的Linux 命令,用于在文本中搜索指定的模式。
`grep` 命令的基本语法如下:grep [选项] 模式文件其中,选项可以是`-i`(忽略大小写)、`-r`(递归搜索子目录)和`-n`(显示行号)等。
模式是要搜索的字符串或正则表达式,文件是要搜索的目标文件。
例如,要在文件夹`/home/user/logs` 中搜索包含字符串"error" 的文件,可以使用以下命令:grep -r "error" /home/user/logs`grep` 命令经常和其他命令一起使用,例如`ls`、`tar` 和`find` 等。
例如,要在目录中搜索包含字符串"example" 的文件,可以使用以下命令:ls grep "example"`grep` 命令支持使用正则表达式搜索,这可以进一步扩展搜索的能力。
例如,要搜索以"abc" 开头的单词,可以使用以下命令:grep -r "\<abc" /path/to/folder2. `find`命令: `find` 命令用于在目录树中搜索文件和目录。
它具有广泛的选项,可以根据不同的条件进行搜索,并且可以配合其他命令使用。
`find` 命令的基本语法如下:find [路径] [选项] [表达式]其中,路径是要搜索的目录路径,选项用于过滤搜索结果,表达式用于指定不同的搜索条件。
例如,要在当前目录及其子目录中搜索包含字符串"example" 的文件,可以使用以下命令:find . -type f -exec grep -l "example" {} +这个命令会在当前目录及其子目录中搜索文件,并使用`grep` 命令查找包含"example" 字符串的文件。
Linux命令高级技巧使用findgrepsedxargs和awk命令进行高级文件搜索和批量处理
Linux命令高级技巧使用findgrepsedxargs 和awk命令进行高级文件搜索和批量处理Linux命令高级技巧:使用find、grep、sed、xargs和awk命令进行高级文件搜索和批量处理Linux是一种常用的操作系统,广泛应用于服务器和嵌入式设备。
作为开源操作系统,Linux提供了强大的命令行工具,这些工具可以通过各种命令和参数来完成各种任务。
本文将介绍Linux中几个常用的命令:find、grep、sed、xargs和awk,并讲解如何使用它们来进行高级文件搜索和批量处理。
一、find命令find命令用于在指定目录中搜索文件和目录。
它可以根据文件名、文件类型、文件大小、文件时间等多个条件进行搜索。
以下是find命令的基本语法:find [路径] [条件]其中,路径表示搜索的起始目录,条件表示搜索的条件。
下面是一些常见的find命令使用示例:1. 在当前目录下搜索以.txt结尾的文件:$ find . -name "*.txt"该命令会从当前目录开始搜索,找到以.txt结尾的文件并打印出它们的路径。
2. 在指定目录及其子目录下搜索大于100MB的文件:$ find /path/to/dir -size +100M该命令会在指定目录及其子目录中搜索大于100MB的文件并打印出它们的路径。
3. 在系统根目录下搜索所有的空文件:$ find / -type f -empty该命令会在系统根目录下搜索所有的空文件并打印出它们的路径。
二、grep命令grep命令用于在文件中搜索指定的模式。
它可以根据正则表达式匹配模式,并打印出包含该模式的行。
以下是grep命令的基本语法:grep [选项] 模式 [文件]其中,选项表示grep命令的参数,模式表示要搜索的模式,文件表示要搜索的文件。
下面是一些常见的grep命令使用示例:1. 在文件中搜索包含指定关键字的行:$ grep "keyword" file.txt该命令会在file.txt文件中搜索包含关键字"keyword"的行并打印出它们。
linux在编辑文件中查找内容的命令
linux在编辑文件中查找内容的命令Linux中编辑文件中查找内容的命令有以下几种:
1. grep命令:grep用于在文件中搜索指定的模式或文本,并输出匹配的行。
例如:
```
grep "pattern" file
```
2. sed命令:sed是一个流编辑器,可以对文本进行流式的修改和转换。
它也可以用于查找和替换文本。
例如:
```
sed -n '/pattern/p' file
```
3. awk命令:awk是一个强大的文本处理工具,可以从文件中提取和处理数据。
它也可以用于查找和过滤文本。
例如:
```
awk '/pattern/' file
```
4. find命令:find用于在指定目录下搜索文件和目录。
它可以根据不同的条件进行搜索,并输出符合条件的文件和目录。
例如:
```
find /path/to/search -name "filename"
```
5. ag命令:ag是一个更快的grep替代品,它使用并行搜索算法来提高搜索速度。
它可以递归搜索指定目录下的文件,并输出匹配的行。
例如:
```
ag "pattern" /path/to/search
```
请注意,以上命令中的"pattern"可以是简单的字符串,也可以是正则表达式,具体使用方法可以参考各个命令的文档或使用帮助命令来查看。
linux 查询命令的用法
linux 查询命令的用法Linux查询命令是Linux操作系统中常用的命令之一,它们用于搜索和查询文件、目录以及系统中的各种信息。
下面是一些常见的Linux查询命令及其用法:1. 'find'命令:用于在文件系统中搜索文件和目录。
使用方法如下:'''phpfind <路径> <选项> <表达式>'''例如,要在当前目录及其子目录中查找名为"example.txt"的文件,可以使用以下命令:'''arduinofind . -name example.txt'''2. 'grep'命令:用于在文件中搜索指定的文本或正则表达式模式。
使用方法如下:'''phpgrep <模式> <文件>'''例如,要在名为"example.txt"的文件中搜索包含"hello"的行,可以使用以下命令:'''perlgrep "hello" example.txt'''3. 'locate'命令:用于快速查找文件和目录。
它使用一个预先构建的数据库来加速查询速度。
使用方法如下:'''phplocate <模式>'''例如,要在系统中查找名为"example.txt"的文件,可以使用以下命令:'''csslocate example.txt'''4. 'which'命令:用于查找并显示可执行文件的路径。
使用方法如下:'''phpwhich <命令>'''例如,要查找名为"python3"的可执行文件的路径,可以使用以下命令:'''perlwhich python3'''5. 'whereis'命令:用于查找二进制文件、源代码文件和帮助文件。
linux系统find命令详解+xargs命令、exec命令
linux系统find命令详解+xargs命令、exec命令find作⽤:查找⽂件:指定⽂件名例⼦1. 找到以du结尾的⽂件╭─root@localhost.localdomain ~╰─➤ find / -name "*du" | head -3/var/lib/AccountsService/users/du/var/db/sudo/du/var/spool/mail/du例⼦2:找到包含du的⽂件╭─root@localhost.localdomain ~╰─➤ find / -name "*du*" | head -3./.oh-my-zsh/themes/duellj.zsh-theme./.zcompdump-localhost-5.0.2./apr-1.5.2/file_io/os2/filedup.c2. perm:指定⽂件权限例⼦1:找到所有644权限的⽂件╭─root@localhost.localdomain ~╰─➤ find / -perm 644 | head -3/boot/grub/splash.xpm.gz/boot/.vmlinuz-3.10.0-514.el7.x86_64.hmac/boot/config-3.10.0-514.el7.x86_64╭─root@localhost.localdomain ~╰─➤ ll /boot/grub/splash.xpm.gz-rw-r--r--. 1 root root 1.4K 11⽉ 16 2011 /boot/grub/splash.xpm.gz例⼦2:模糊匹配644权限╭─root@localhost.localdomain ~╰─➤ find / -perm -644 | head -3/boot/grub/boot/grub/splash.xpm.gz/boot/.vmlinuz-3.10.0-514.el7.x86_64.hmac3. exec: 执⾏命令例⼦1:删除⽆属主的⽂件╭─root@localhost.localdomain ~╰─➤ find / -nouser -exec rm -rf {} \;3:xargs╭─root@localhost.localdomain /home╰─➤ lsdu╭─root@localhost.localdomain /home╰─➤ touch {1..20}cjk╭─root@localhost.localdomain /home╰─➤ ls10cjk 12cjk 14cjk 16cjk 18cjk 1cjk 2cjk 4cjk 6cjk 8cjk du11cjk 13cjk 15cjk 17cjk 19cjk 20cjk 3cjk 5cjk 7cjk 9cjk╭─root@localhost.localdomain /home╰─➤ find /home -name "*cjk" | xargs rm -rf╭─root@localhost.localdomain /home╰─➤ lsdu4.find可以使⽤-a和-o或!-a 是⽽且的意思-o 是或者的意思例⼦1:找到所有权限是644的普通⽂件╭─root@localhost.localdomain /home╰─➤ find / -type f -a -perm 644 | head -3/boot/grub/splash.xpm.gz/boot/.vmlinuz-3.10.0-514.el7.x86_64.hmac/boot/config-3.10.0-514.el7.x86_64例⼦⼆:找到以du开头或以du结尾的普通⽂件╭─root@localhost.localdomain /home╰─➤ find / -name "du*" -o -name "*du" -a -type f必要时可以⽤(),但是需要⽤"\"转义删除⽇志⽂件(9号机桌⾯有命令)find /alidata/www/logs/java/ebs/sys -mtime +7 -type f \( -name "task.log.*" -o -name "dubbo.log.*" -o -name "task-removeSnapshot.log.*" -o -name "service.log.*" -o -name "grandcanal_heartbeat,log,*" -o -name "grandcanal_thread.log.*" \) | xargs 5. user:指定属主例⼦1:找到etc⽬录下属主是root的⽂件╭─root@localhost.localdomain ~╰─➤ find /etc -user root | head -3/etc//etc/fstab/etc/crypttab6.group:指定属组例⼦1:╭─root@localhost.localdomain ~╰─➤ find /etc -group root | head -3/etc/etc/fstab/etc/crypttab7. nouser:指定⽆属主例⼦1:╭─root@localhost.localdomain ~╰─➤ find -nouser | head -5./httpd-2.4.20./httpd-2.4.20/.deps./httpd-2.4.20/.gdbinit./httpd-2.4.20/ABOUT_APACHE./httpd-2.4.20/acinclude.m4╭─root@localhost.localdomain ~╰─➤ ll ./httpd-2.4.20/.deps-rw-r--r--. 1 501 games 0 5⽉ 23 20:33 ./httpd-2.4.20/.deps8. nogroup:指定⽆属主╭─root@localhost.localdomain ~╰─➤ find -nogroup9.type:指定⽂件类型-type #⽂件类型主要的⽂件类型:f #普通⽂件d #⽬录b #块设备s #套接字c #字符设备l #链接p #管道例⼦1:找到所有的链接⽂件╭─root@localhost.localdomain ~╰─➤ find / -type l | head -3/dev/cdrom/dev/snd/by-path/pci-0000:02:02.0/dev/initctl╭─root@localhost.localdomain ~╰─➤ find -type l | head -3./.oh-my-zsh/plugins/fedora/fedora.plugin.zsh./.oh-my-zsh/plugins/go/go.plugin.zsh./.oh-my-zsh/plugins/gradle/_gradle╭─root@localhost.localdomain ~╰─➤ ll ./.oh-my-zsh/plugins/fedora/fedora.plugin.zshlrwxrwxrwx. 1 root root 21 4⽉ 19 11:20 ./.oh-my-zsh/plugins/fedora/fedora.plugin.zsh -> ../dnf/dnf.plugin.zsh 例⼦2:找到所有普通⽂件╭─root@localhost.localdomain ~╰─➤ find -type f | head -3./.bash_logout./.bash_profile./.bashrc10. size:指定⽂件⼤⼩例⼦1:找到⼤于100M的⽂件╭─root@localhost.localdomain ~╰─➤ find / -size +100M/proc/kcore/run/media/root/CentOS 7 x86_64/LiveOS/squashfs.img/sys/devices/pci0000:00/0000:00:0f.0/resource1_wc/sys/devices/pci0000:00/0000:00:0f.0/resource1/usr/lib/locale/locale-archive╭─root@localhost.localdomain ~╰─➤ ls -lh /usr/lib/locale/locale-archive-rw-r--r--. 1 root root 102M 4⽉ 18 21:35 /usr/lib/locale/locale-archive11. mtime: (modify time)指⽂件修改时间(天)例⼦1:找到⽂件修改时间⼀天以上的[root@ken ~]# find / -mtime +1 | head -3/boot/boot/efi/boot/efi/EFI[root@ken ~]# stat /bootFile: ‘/boot’Size: 4096 Blocks: 8 IO Block: 4096 directoryDevice: 801h/2049d Inode: 64 Links: 5Access: (0555/dr-xr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2019-05-24 19:31:37.453000000 +0800Modify: 2019-02-26 22:25:57.574000000 +0800Change: 2019-03-14 18:49:48.066000000 +0800Birth: –12. atime:(access time)指定⽂件访问时间(天)例⼦:找到访问时间1天以上的[root@ken ~]# find / -atime +1 | head -3/boot/grub2/device.map/boot/grub2/i386-pc/gcry_rmd160.mod/boot/grub2/i386-pc/acpi.mod^C[root@ken ~]# stat /boot/grub2/device.mapFile: ‘/boot/grub2/device.map’Size: 64 Blocks: 8 IO Block: 4096 regular fileDevice: 801h/2049d Inode: 1572929 Links: 1Access: (0644/-rw-r–r–) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2019-02-26 22:25:05.730000000 +0800Modify: 2019-02-26 22:25:05.582000000 +0800Change: 2019-02-26 22:25:05.582000000 +0800Birth: –13.ctime:(create time)指定创建时间(天)例⼦1:指定⽂件创建时间⼀天以上[root@ken ~]# find / -ctime +1 | head -3/boot/boot/efi/boot/efi/EFI^C^[root@ken ~]# stat /bootFile: ‘/boot’Size: 4096 Blocks: 8 IO Block: 4096 directoryDevice: 801h/2049d Inode: 64 Links: 5Access: (0555/dr-xr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2019-05-24 19:31:37.453000000 +0800Modify: 2019-02-26 22:25:57.574000000 +0800Change: 2019-03-14 18:49:48.066000000 +0800Birth: –。
Linux常用命令--文件(夹)查找之find命令
Linux常⽤命令--⽂件(夹)查找之find命令Linux系统⽤得越久,就会发现这真的是⼀个很优秀的系统,各种⽅便各种实⽤各种⾼效率。
晚饭前写⼀下find命令的笔记。
其实这篇笔记,也是看到⼀篇外⽂博客,写得不错,⾃⼰拿来练⼀练,然后才顺便写篇笔记。
find命令是我们在Linux下最常⽤的⽂件(夹)查找命令之⼀,它的⽤途很⼴泛,可以通过⼀个⽂件(夹)的所属⽤户、⽤户组,包含名称,时间(更新或更旧),⽂件类型(.txt,.rar后缀),⽂件⼤⼩,⽂件权限等等条件来对⽂件(夹)进⾏查找,这个命令对于系统管理员来说肯定是很实⽤的。
Find --help给出的帮助内容很简单,我们⾸先需要知道的是find的表达式可以由四个主要成分组成:操作符、选项、测试表达式以及动作。
我们最常⽤到是测试表达式和动作这两部分。
先看⼀下着两部分由哪些基本选项组成:如果你需要知道更详细的帮助内容,⽤man⼿册即可:man find⽐如说我想知道-amin这个选项具体是什么意思,⼲什么⽤,在man⼿册给出的⽂档中我们就可以找到:可见,-amin选项帮我们找到的是n分钟前使⽤过的⽂件。
⼜⽐如说-iname这个选项:可见,-iname选项的作⽤就是忽略⽂件名的⼤⼩写,凡是字符匹配的⽂件都对其进⾏打印。
其他的就不再⼀⼀列举了。
看man⽂件找得⽐较慢,所以还是平时多写⼀写常⽤的、实⽤的选项搭配⽐较实际。
⼀、根据⽂件名查找⽂件:根据⽂件名查找⽂件,我们使⽤-name测试选项即可,如果需要忽略⼤⼩写,则可以使⽤-iname选项。
⽐如说,我在桌⾯新建了⼀个⽂件夹testdir,⾥⾯有⽂件如下:颜⾊⾼亮的为⽂件夹,text.php重复,⽅便后⾯练习“通过⽂件类型查找⽂件”。
权限为644和777的⽂件我们在后⾯练习“通过⽂件权限查找”的时候会⽤到。
Tips:Linux中的⽂件权限,4为读,2为写,1为执⾏,权限顺序为⽂件所属⽤户、⽂件所属⽤户组、其他⽤户。
Linux命令高级技巧使用find和xargs进行文件搜索和批量处理
Linux命令高级技巧使用find和xargs进行文件搜索和批量处理Linux操作系统拥有强大的命令行工具,其中find和xargs是常用的两个命令,对于文件搜索和批量处理提供了高级技巧。
本文将介绍如何使用find和xargs命令,并展示它们在文件管理中的广泛应用。
一、find命令概述find命令用于在指定目录下搜索符合条件的文件,并对其执行相应操作。
其基本语法如下:find [路径] [选项] [操作]其中,路径表示要搜索的目录路径,选项用于指定搜索条件,操作则是对搜索结果执行的操作。
二、使用find命令进行文件搜索1. 根据文件名搜索我们可以根据文件名来搜索文件,以查找名为"example.txt"的文件为例:```shellfind /path/to/directory -name example.txt```上述命令将在指定目录下搜索名为"example.txt"的文件并返回结果。
2. 根据文件类型搜索通过指定文件类型,我们可以搜索特定类型的文件。
例如,要搜索所有的文本文件:```shellfind /path/to/directory -type f -name "*.txt"```这条命令将在指定目录下搜索扩展名为".txt"的所有文件。
3. 根据文件大小搜索find命令还可以根据文件大小进行搜索。
下面的示例演示了如何搜索大于100MB的文件:```shellfind /path/to/directory -size +100M```这条命令将在指定目录下搜索大小大于100MB的文件。
三、使用xargs命令进行批量处理xargs命令可以将来自标准输入的数据作为命令行参数传递给其他命令。
这使得我们能够批量处理文件。
下面是一些常见的xargs用法示例。
1. 批量复制文件假设我们想将所有的txt文件从一个目录复制到另一个目录。
Linux命令高级技巧利用find与xargs命令进行批量文件权限的修改与管理的高级技术
Linux命令高级技巧利用find与xargs命令进行批量文件权限的修改与管理的高级技术在Linux系统中,find与xargs命令是实现批量文件权限修改与管理的高级技术。
利用这两个命令的强大功能,我们可以轻松地对文件或目录进行权限的批量修改,提高工作效率。
本文将介绍Linux命令高级技巧,详细解释find与xargs命令的使用方法,并提供实例演示。
一、find命令的基本使用find命令是Linux系统中常用的查找文件和目录的命令。
它支持根据文件名、文件类型、文件时间等多个条件进行搜索,具有非常强大的灵活性。
下面是find命令的基本语法:find [path] [expression]其中,path表示要进行搜索的路径,可以是绝对路径或相对路径。
expression表示搜索的条件,可以是文件名、文件类型、文件大小等。
1.1 根据文件名查找我们可以使用find命令根据文件名查找文件或目录。
以下是一个例子:```shellfind /home -name test.txt```上述命令将在/home目录下查找文件名为test.txt的文件。
如果要查找某个目录及其子目录下的文件,可以使用通配符*:```shellfind /home -name "*.txt"```上述命令将查找/home目录及其子目录下的所有以.txt结尾的文件。
1.2 根据文件类型查找除了根据文件名查找,find命令还支持根据文件类型进行查找。
以下是一个例子:```shellfind /home -type f```上述命令将在/home目录下查找所有的文件。
同样地,我们可以使用不同的参数来搜索特定类型的文件。
例如,要查找所有的目录,可以使用参数-d:```shellfind /home -type d```1.3 根据文件时间查找find命令还可以通过文件的修改时间或访问时间进行搜索。
以下是一个例子:```shellfind /home -mtime +7```上述命令将在/home目录下查找所有7天前被修改的文件。
Linux命令高级技巧使用xargs和find命令进行批量文件操作和筛选
Linux命令高级技巧使用xargs和find命令进行批量文件操作和筛选在Linux系统中,xargs和find是两个非常强大且常用的命令,它们能够帮助我们进行批量文件操作和筛选。
本文将介绍如何使用xargs和find命令来实现高级技巧。
一、xargs命令的基本用法xargs命令用于将标准输入的数据,通过给定的参数,组装成命令行的参数,执行这些命令。
其基本语法如下:```bashcommand | xargs [options] [command]```其中,command表示要执行的命令,options表示xargs的选项,[command]表示作为command的选项。
1. 使用xargs执行命令例如,假设有一个文本文件`files.txt`,其中每一行都包含一个文件名,我们想要对这些文件执行某个命令,可以使用xargs命令:```bashcat files.txt | xargs rm```上述命令会读取`files.txt`中的内容,并将每一行视为rm命令的参数,从而删除这些文件。
2. 使用xargs设定参数个数有时候,我们想要将多个参数组合在一起作为command的参数,可以使用`-n`选项来设定参数的个数。
例如,我们想要每次传递3个参数给command:```bashcat files.txt | xargs -n 3 command```上述命令会每次从`files.txt`中读取3行,将这3行视为command的参数。
3. 使用xargs处理特殊字符在使用xargs时,如果待处理的文件名或参数中包含特殊字符(如空格),需要处理这些特殊字符。
可以使用`-0`选项来处理以空格分割的参数。
```bashfind . -name "*.txt" -print0 | xargs -0 command```上述命令会找到以`.txt`结尾的所有文件,并将它们作为参数传递给command。
Linux命令高级技巧使用xargs和find实现高级批量文件处理和命令执行
Linux命令高级技巧使用xargs和find实现高级批量文件处理和命令执行在Linux系统中,xargs和find命令是非常强大和常用的命令,它们能够帮助我们更高效地进行批量文件处理和命令执行。
本文将介绍如何运用xargs和find命令来实现高级的批量操作。
1. xargs命令简介xargs命令是用来将前面命令的输出作为后面命令的参数传递的。
它可以将标准输入中的内容转换成后面命令的参数,实现对多个文件的操作。
2. find命令简介find命令是用来搜索文件和目录的命令,它可以按照文件名、文件类型、文件大小等条件搜索文件、执行相应的操作。
3. 使用xargs和find命令批量处理文件假设我们需要在一个目录下对所有的txt文件进行批量修改后缀名,将其改为doc,可以使用以下命令:find . -name "*.txt" | xargs -i mv {} {}.doc在上述命令中,首先使用find命令找到当前目录及其子目录下所有的txt文件,然后使用xargs命令将这些文件名作为参数传递给后面的mv命令,实现批量修改文件后缀名的操作。
4. 使用xargs和find命令批量执行命令除了文件操作,xargs和find命令还可以帮助我们批量执行命令。
假设我们需要在一个目录下对所有的txt文件进行关键词搜索,可以使用以下命令:find . -name "*.txt" -type f | xargs -I{} grep "keyword" {}上述命令中,通过find命令找到所有的txt文件,并使用xargs命令将这些文件名作为参数传递给grep命令,实现对文件内容的搜索。
5. 使用xargs和find命令实现更多高级操作除了上述示例中的批量操作和命令执行,xargs和find命令还有更多实用的功能。
例如,可以使用xargs命令配合awk命令来处理大量数据,使用find命令进行文件权限的批量修改等。
linux 所有文件中查找字符串的方法 -回复
linux 所有文件中查找字符串的方法-回复Linux作为一个开源操作系统,广泛应用于服务器和嵌入式设备。
在Linux 中查找文件中的字符串可以用于各种编程和系统维护任务。
本文将介绍在Linux中使用不同的命令和工具来查找文件中的字符串,以及它们的用法和示例。
在Linux中,有多种方法可以查找文件中的字符串。
下面将逐步介绍这些方法:1. 使用grep命令:grep是Linux中最常用的命令之一,用于在文件中搜索指定的模式。
grep 命令的基本用法是:grep "pattern" file其中"pattern"是要查找的字符串,file是要搜索的文件。
例如,要在文件text.txt中查找字符串"hello",可以使用以下命令:grep "hello" text.txtgrep命令默认区分大小写。
要忽略大小写,可以使用-i选项:grep -i "hello" text.txt2. 使用find命令和grep命令的组合:find命令用于查找文件或目录。
结合grep命令,可以在多个文件中查找字符串。
使用find命令和grep命令的组合的基本用法是:find /path/to/search -type f -exec grep "pattern" {} +其中,/path/to/search是要搜索的路径,-type f表示只搜索文件,-exec 选项用于执行后面的命令,并将搜索结果传递给grep命令。
例如,要在目录/home下的所有文件中查找字符串"hello",可以使用以下命令:find /home -type f -exec grep "hello" {} +3. 使用ack命令:ack是一个专门为程序员设计的文件搜索工具,它支持更多的搜索选项和正则表达式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
$ find /dev/rmt -print
三、xargs
xargs - build and execute command lines from standard input
在使用find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
3、find命令选项
-name
按照文件名查找文件。
-perm
按照文件权限来查找文件。
-prune
使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。
一、find 命令格式
1、find命令的一般形式为;
find pathname -options [-print -exec -ok ...]
查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。
在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;
目录
版权声明
前言:关于find命令
一、find 命令格式
1、find命令的一般形式为;
2、find命令的参数;
3、find命令选项;
4、使用exec或ok来执行shell命令;
二、find命令的例子;
1、查找当前用户主目录下的所有文件;
2、为了在当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件;
另外,下面三个的区别:
-amin n
查找系统中最后N分钟访问的文件
-atime n
查找系统中最后n*24小时访问的文件
-cmin n
查找系统中最后N分钟被改变文件状态的文件
-ctime n
查找系统中最后n*24小时被改变文件状态的文件
8、为了查找系统中所有的rmt磁带设备;
三、xargs
四、find 命令的参数;
1、使用name选项
2、用perm选项
3、忽略某个目录
4、使用find查找文件的时候怎么避开某个文件目录
5、使用user和nouser选项
6、使用group和nogroup选项
7、按照更改时间或访问时间等查找文件
$ find ~ -print
2、让当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件;
$ find . -type f -perm 644 -exec ls -l { } \;
3、为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径;
-user
按照文件属主来查找文件。
-group
按照文件所属的组来查找文件。
-mtime -n +n
按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。
# find /etc -name "passwd*" -exec grep "sam" { } \;
sam:x:501:501::/usr/sam:/bin/bash
二、find命令的例子;
1、查找当前用户主目录下的所有文件:
下面两种方法都可以使用
$ find $HOME -print
# find . -type f -exec ls -l { } \;
-rw-r--r-- 1 root root 34928 2003-02-25 ./conf/httpd.conf
-rw-r--r-- 1 root root 12959 2003-02-25 ./conf/magic
版权声明
本文是zhyfly兄贴在 的一个帖子而整理出来的,如果您对版权有疑问,请在本帖后面跟帖。谢谢;本文的HTML版本由北南南北整理;修改了整篇文档的全角及说明文字中的单词中每个字母空格的问题;为标题加了编号,方便大家阅读;
前言:关于find命令
由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。
$find . -group root -exec ls -l { } \;
-rw-r--r-- 1 root root 595 10月 31 01:09 ./fie1
6、find命令将删除当目录中访问时间在7日以来、含有数字后缀的admin.log文件。
$ find . -name "*.conf" -mtime +5 -ok rm { } \;
< rm ... ./conf/httpd.conf > ? n
按y键删除文件,按n键不删除。
任何形式的命令都可以在-exec选项中使用。
在下面的例子中我们使用grep命令。find命令首先匹配所有文件名为“ passwd*”的文件,例如passwd、passwd.old、passwd.bak,然后执行grep命令看看在这些文件中是否存在一个sam用户。
-rw-r--r-- 1 root root 180 2003-02-25 ./conf.d/README
上面的例子中,find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出。
在/logs目录中查找更改时间在5日以前的文件并删除它们:
exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。为了使用exec选项,必须要同时使用print选项。如果验证一下find命令,会发现该命令只输出从当前路径起的相对路径及文件名。
例如:为了用ls -l命令列出所匹配到的文件,可以把ls -l命令放在find命令的-exec选项中
Linux文件查找命令find,xargs详述
总结:zhy2111314
来自:
整理:北南南北
摘要: 本文是find 命令的详细说明,可贵的是针对参数举了很多的实例,大量的例证,让初学者更为容易理解;本文是zhyfly兄贴在论坛中;我对本文进行了再次整理,为方便大家阅读;
-nogroup
查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
-nouser
查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-newer file1 ! file2
查找更改时间比文件file1新但比文件file2旧的文件。
-type
该命令只检查三位数字,所以相应文件的后缀不要超过999。先建几个admin.log*的文件 ,才能使用下面这个命令
$ find . -name "admin.log[0-9][0-9][0-9]" -atime -7 -ok
rm { } \;
< rm ... ./admin.log001 > ? n
2、find命令的参数;
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
$ find / -type f -size 0 -exec ls -l { } \;
4、查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们;
$ find /var/logs -type f -mtime +7 -ok rm { } \;
5、为了查找系统中所有属于root组的文件;
-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount:在查找文件时不跨越文件系统mount点。
-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。