find命令查找并删除
- 格式:doc
- 大小:73.00 KB
- 文档页数:9
linux删除文件夹的方法
在Linux操作系统中,删除文件夹的方法如下:
1. 使用rm命令
使用rm命令可以删除文件夹及其所有子目录和文件。
命令格式为:
rm -r 文件夹名
其中,-r参数表示递归删除,即删除文件夹及其所有子目录和文件。
需要注意的是,使用rm命令删除文件夹时要特别小心,因为该命令不会提示用户确认操作,一旦执行就会立即删除文件夹及其所有内容,无法恢复。
2. 使用rmdir命令
使用rmdir命令可以删除空文件夹。
命令格式为:
rmdir 文件夹名
需要注意的是,如果文件夹中有文件或子目录,rmdir命令将无法删除该文件夹,这时需要先删除文件夹中的所有内容,再使用rmdir命令删除该文件夹。
3. 使用find命令
使用find命令可以查找并删除指定文件夹及其所有子目录和文件。
命令格式为:
find 文件夹名 -type d -exec rm -r {} ;
其中,-type d参数表示查找类型为目录的文件夹,-exec参数表示执行后面的命令,{}表示查找到的文件夹名,;表示命令结束符。
需要注意的是,使用find命令删除文件夹时,也要特别小心,因为该命令同样不会提示用户确认操作,一旦执行就会立即删除文件夹及其所有内容,无法恢复。
- 1 -。
find命令的使用例子一、什么是find命令咱们今天聊聊一个在Linux系统中超常见的命令——`find`。
我知道你可能会想:“这个命令有什么了不起的?”`find`的厉害之处就在于它能让你快速在一大堆文件里找到你想要的东西。
想象一下,如果你电脑里堆满了文件,你突然想找某个文件,可你连文件的名字都记不清了,那时候你就会感谢`find`的存在了。
就像你丢了钥匙,然后找了半天也没找到,结果突然想到“我是不是应该试试‘find’?”嘿试试你就知道了,效率超高的!它能通过各种方式帮你筛选出文件,让你不再像大海捞针那样艰难。
1.根据文件名找文件如果你知道文件的大致名字,`find`能帮你精准找到。
比如你记得文件大概是“report”开头,结果你满电脑找却找不到,这时候你就可以用`find`了。
例如:```bashfind/home/user/name"report*"```这条命令意思是从`/home/user/`这个目录开始,找名字以“report”开头的文件。
好比你记得钥匙掉在家里,可你找不到,试试用钥匙的样子做标记,准确度高嘛!2.根据文件类型查找如果你有很多文件夹、文档、图片、视频等,不知道怎么找到某个特定类型的文件,那`find`也能帮你。
比如你想找所有的图片文件,可以这样:```bashfind/home/user/typefname"*.jpg"```这时候,`find`会帮你从文件夹里找出所有的`.jpg`图片文件。
这样一来,就算一大堆文件躺在一起,你也能轻松区分出哪一类是你需要的,免得像盲人摸象,找得头晕眼花。
3.根据文件大小来找我们会遇到文件占用空间太大了,想找出来看看能不能删掉。
比如系统硬盘快满了,你不想一个个去手动检查文件大小,那该怎么办?这时候`find`就能派上用场了。
你可以根据文件大小来过滤,像这样:```bashfind/home/user/size+100M```这条命令会帮你找到所有大于100MB的文件。
find命令详解find命令⽤来在指定⽬录下查找⽂件。
任何位于参数之前的字符串都将被视为欲查找的⽬录名。
如果使⽤该命令时,不设置任何参数,则find 命令将在当前⽬录下查找⼦⽬录与⽂件。
并且将查找到的⼦⽬录和⽂件全部进⾏显⽰。
语法find(选项)(参数)选项-amin<分钟>:查找在指定时间曾被存取过的⽂件或⽬录,单位以分钟计算;-anewer<参考⽂件或⽬录>:查找其存取时间较指定⽂件或⽬录的存取时间更接近现在的⽂件或⽬录;-atime<24⼩时数>:查找在指定时间曾被存取过的⽂件或⽬录,单位以24⼩时计算;-cmin<分钟>:查找在指定时间之时被更改过的⽂件或⽬录;-cnewer<参考⽂件或⽬录>查找其更改时间较指定⽂件或⽬录的更改时间更接近现在的⽂件或⽬录;-ctime<24⼩时数>:查找在指定时间之时被更改的⽂件或⽬录,单位以24⼩时计算;-daystart:从本⽇开始计算时间;-depth:从指定⽬录下最深层的⼦⽬录开始查找;-expty:寻找⽂件⼤⼩为0 Byte的⽂件,或⽬录下没有任何⼦⽬录或⽂件的空⽬录;-<执⾏指令>:假设find指令的回传值为True,就执⾏该指令;-false:将find指令的回传值皆设为False;-fls<列表⽂件>:此参数的效果和指定“-”参数类似,但会把结果保存为指定的列表⽂件;-follow:排除符号连接;-fprint<列表⽂件>:此参数的效果和指定“-print”参数类似,但会把结果保存成指定的列表⽂件;-fprint0<列表⽂件>:此参数的效果和指定“-print0”参数类似,但会把结果保存成指定的列表⽂件;-fprintf<列表⽂件><输出格式>:此参数的效果和指定“-”参数类似,但会把结果保存成指定的列表⽂件;-fstype<⽂件系统类型>:只寻找该⽂件系统类型下的⽂件或⽬录;-gid<群组识别码>:查找符合指定之群组识别码的⽂件或⽬录;-group<群组名称>:查找符合指定之群组名称的⽂件或⽬录;-或——help:在线帮助;-ilname<范本样式>:此参数的效果和指定“-lname”参数类似,但忽略字符⼤⼩写的差别;-iname<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符⼤⼩写的差别;-inum<inode编号>:查找符合指定的inode编号的⽂件或⽬录;-ipath<范本样式>:此参数的效果和指定“-path”参数类似,但忽略字符⼤⼩写的差别;-iregex<范本样式>:此参数的效果和指定“-regexe”参数类似,但忽略字符⼤⼩写的差别;-links<连接数⽬>:查找符合指定的硬连接数⽬的⽂件或⽬录;-iname<范本样式>:指定字符串作为寻找符号连接的范本样式;-ls:假设find指令的回传值为Ture,就将⽂件或⽬录名称列出到标准输出;-maxdepth<⽬录层级>:设置最⼤⽬录层级;-mindepth<⽬录层级>:设置最⼩⽬录层级;-mmin<分钟>:查找在指定时间曾被更改过的⽂件或⽬录,单位以分钟计算;-:此参数的效果和指定“-xdev”相同;-mtime<24⼩时数>:查找在指定时间曾被更改过的⽂件或⽬录,单位以24⼩时计算;-name<范本样式>:指定字符串作为寻找⽂件或⽬录的范本样式;-newer<参考⽂件或⽬录>:查找其更改时间较指定⽂件或⽬录的更改时间更接近现在的⽂件或⽬录;-nogroup:找出不属于本地主机群组识别码的⽂件或⽬录;-noleaf:不去考虑⽬录⾄少需拥有两个硬连接存在;-nouser:找出不属于本地主机⽤户识别码的⽂件或⽬录;-ok<执⾏指令>:此参数的效果和指定“-exec”类似,但在执⾏指令之前会先询问⽤户,若回答“y”或“Y”,则放弃执⾏命令;-path<范本样式>:指定字符串作为寻找⽬录的范本样式;-perm<权限数值>:查找符合指定的权限数值的⽂件或⽬录;-print:假设find指令的回传值为Ture,就将⽂件或⽬录名称列出到标准输出。
Linux命令高级技巧使用find和exec命令批量操作文件在Linux系统中,find和exec是两个功能强大的命令,它们可以帮助我们批量操作文件,提高工作效率。
本文将介绍find和exec命令的基本使用方法,并提供一些高级技巧,帮助读者更好地利用这两个命令。
一、find命令基本用法find命令是Linux系统中用于查找文件的命令,它可以按照指定的条件搜索文件,并返回满足条件的文件列表。
find命令的基本语法如下:```find [path] [options] [expression]```其中,[path]表示搜索的路径,默认为当前目录;[options]表示find命令的选项,用于指定搜索的条件;[expression]表示用于判断文件是否满足条件的表达式。
下面是一些常用的find命令选项:1. -name选项:按照文件名进行搜索,可以使用通配符。
2. -type选项:按照文件类型进行搜索,如f表示普通文件,d表示目录。
3. -size选项:按照文件大小进行搜索,可以使用+和-表示大于或者小于指定大小的文件。
4. -mtime选项:按照文件最后修改时间进行搜索,可以使用+和-表示N天前或者N天内修改的文件。
例如,要查找当前目录及子目录中所有以.txt结尾的文件,可以使用以下命令:```find . -name "*.txt"```二、exec命令的作用exec命令是find命令的一个选项,它用于对find命令返回的文件列表执行特定的操作。
exec命令的基本语法如下:```find [path] [expression] -exec [command] {} \;```其中,[command]表示要执行的命令,{}表示find命令返回的文件名,\;表示命令的结束符号。
通过使用exec命令,我们可以对find命令返回的文件列表进行各种操作,比如复制、删除、移动等。
三、实例演示以下是一些实例演示,展示了find和exec命令的高级技巧,以及如何结合使用这两个命令来批量操作文件。
find 命令用法Find 命令是 Linux 系统中非常常用的工具,它可以在指定路径及其子路径下搜索指定的文件。
Find 命令有许多用法,并且非常灵活,下面我们来详细介绍一下。
1. 最基础的用法最基础的 find 命令用法如下:```find [path] [expression]```其中 path 表示要搜索的路径,expression 表示搜索的条件表达式。
例如搜索当前目录下所有的 shell 脚本可以使用以下命令:```find . -name "*.sh"```其中点号表示当前目录,-name 表示按照文件名匹配条件,"*.sh" 表示文件名以 .sh 结尾。
2. 搜索特定类型的文件Find 命令可以通过 -type 参数来指定搜索特定类型的文件。
例如搜索当前目录下所有的目录可以使用以下命令:```find . -type d```其中 -type d 表示搜索类型为目录的文件。
3. 搜索指定时间的文件Find 命令可以通过 -mtime、-atime 和 -ctime 参数来搜索指定时间的文件。
例如搜索 10 天内修改过的文件可以使用以下命令:```find . -mtime -10```其中 -mtime -10 表示搜索最近 10 天内修改过的文件。
4. 搜索指定大小的文件Find 命令可以通过 -size 参数来搜索指定大小的文件。
例如搜索大于 1M 的文件可以使用以下命令:```find . -size +1M```其中 -size +1M 表示搜索大小大于 1M 的文件。
5. 搜索指定权限的文件Find 命令可以通过 -perm 参数来搜索指定权限的文件。
例如搜索所有用户可执行的文件可以使用以下命令:```find . -perm /u+x```其中 -perm /u+x 表示搜索文件权限中用户可执行的文件。
6. 搜索指定用户或组的文件Find 命令可以通过 -user 和 -group 参数来搜索指定用户或组的文件。
find命令详解第⼀部分:根据⽂件名查找1、在当前⽬录查找名称为test的所有⽂件:find test2、在主⽬录下查找名称为test的所有⽂件:find /home –name test3、在主⽬录下查找test的所有⽂件,且不分区⼤⼩写:find /home -iname test4、查找名称为test的所有⽬录:find / -type d -name test5、当前⽬录查找名为test.php的所有php⽂件:find -type f -name test.php6、查找当前⽬录中所有php⽂件:find -type f -name '*.php'第⼆部分:根据权限查找7、查找权限为777的所有⽂件:find -type f -perm 0777 -print8、查找没有777权限的⽂件:find -type f ! -perm 7779、查找有特殊权限2755的SGID⽂件:find -perm 275510、查找有特殊权限1551的所有SBIT的⽂件:find –prem 155111、查找有特殊权限SUID的所有⽂件:find / -perm /u=s12、查找有特殊权限SGID的所有⽂件:find / -perm /g=s13、查找所有只读⽂件:find / -perm /u=r14、查找所有可执⾏⽂件:find / -perm /a=x15、查找所有777权限的⽂件,并使⽤chmod将其设置为644:find -type f -perm 0777 -print -exec chmod 644 {} \;16、查找并删除单个⽂件:find -type f -name 'test.php' -exec rm -f {} \;17、查找并删除多个⽂件:find -type f -name '*.php' -exec rm -f {} \;18、查找所有空⽂件:find / -type f -empty19、查找所有空⽬录:find / -type d -empty20、查找所有隐藏⽂件:find / -type f -name '.*'第三部分:根据所有者和组查找21、查找所有者为root的所有aaa⽂件:find / -user root -name 'aaa'22、查找属于root组的所有⽂件:find / -group root第四部分:根据⽇期和时间查找23、查找30天前修改的所有⽂件:find / -type f -mtime +3024、查找最后10-20天修改的所有⽂件:find / -mtime +10 -mtime -2025、查找最近1⼩时内修改的所有⽂件:find / -mmin -6026、查找30天前访问的所有⽂件:find / -type f -atime +3027、查找最近30天访问的所有⽂件:find / -type f -atime 3028、查找最近1⼩时内访问的所有⽂件:find / -type f -amin -60第五部分:根据⼤⼩查找29、查找⼤⼩为50MB的所有⽂件:find / -size 50M30、查找⼤于50M且⼩于100M的所有⽂件:find / -size +50M -size -100M31、查找⼤于50M的所有⽂件并删除:find / -size +50M -exec rm -rf {} \;32、查找⼤于10M的所有.mp3⽂件并删除:find / -type f -name '*.mp3' -size +10M -exec rm -rf {} \;转⾃:学神。
linux删除文件的操作命令在Linux系统中,删除文件是一个常见而重要的操作。
Linux提供了多种命令来删除文件,每个命令都有自己的特点和用法,下面将详细介绍几个常用的删除文件的命令。
1. rm命令(remove)rm命令是最常用的删除文件命令,它可以删除文件和目录。
其基本用法如下:rm [选项] 文件名常用选项:- -f:强制删除文件,不提示用户确认。
- -r或-R:递归删除目录及其内容。
- -i:删除前逐个询问确认。
使用rm命令删除文件时要非常小心,因为删除后无法恢复,务必确认文件的正确性和重要性。
2. unlink命令(与rm命令基本相同)unlink命令与rm命令的功能几乎完全相同,用法也基本一致。
unlink命令的基本用法如下:unlink 文件名unlink命令与rm命令的主要区别在于,unlink命令不支持删除目录(只能删除文件),而且没有rm命令的其他选项。
因此,unlink命令更适合用于单个文件的删除操作。
3. rmdir命令(remove directory)rmdir命令用于删除空目录,若目录非空则无法删除。
其基本用法如下:rmdir 目录名rmdir命令无需使用选项,只需要指定要删除的目录名称即可。
如果要删除非空目录,可以使用rm命令的-r或-R选项,例如:rm -r 目录名这样会递归删除目录及其内容。
4. find命令find命令是一个强大的文件查找和处理命令,也可以用于删除文件。
其基本用法如下:find 路径-name 文件名-exec rm {} \;有几点需要注意:- 路径:指定要搜索的文件路径。
- -name 文件名:指定要搜索的文件名,可以使用通配符来匹配多个文件名。
- -exec rm {} \;:表示对找到的文件执行rm命令来删除。
例如,要删除当前目录及其子目录下所有的.txt文件,可以使用如下命令:find . -name "*.txt" -exec rm {} \;5. shred命令shred命令用于安全删除文件,它会重复地覆盖文件内容,防止恢复。
linux shell find命令详解find命令是linux下的一个命令,那么它到底有什么用处呢?下面由店铺为大家整理了find命令的相关知识,希望大家喜欢!linux shell find命令一、简介由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
即使系统中含有网络文件系统( NFS),find 命令在该文件系统中同样有效,只要你具有相应的权限。
在运行一个非常消耗资源的find 命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统能会花费很长的时间(这里是指30G 字节以上的文件系统)。
二、find 命令格式1、find 命令的一般形式为;find pathname -options [-print -exec -ok ...]2、find 命令的参数;pathname: find 命令所查找的目录路径。
例如用.来表示当前目录,用/来表示系统根目录。
-print: find 命令将匹配的文件输出到标准输出。
-exec: find 命令对匹配的文件执行该参数所给出的shell 命令。
相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
-ok:和-exec 的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell 命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
3、find 命令选项-name按照文件名查找文件。
-perm按照文件权限来查找文件。
-prune使用这一选项可以使find 命令不在当前指定的目录中查找,如果同时使用-depth 选项,那么-prune 将被find 命令忽略。
-user按照文件属主来查找文件。
-group按照文件所属的组来查找文件。
-mtime -n +n按照文件的更改时间来查找文件, - n 表示文件更改时间距现在n 天以内,+ n 表示文件更改时间距现在n 天以前。
linux快速删除大量小文件的方法-概述说明以及解释1.引言1.1 概述概述:在日常的操作中,我们经常会遇到需要删除大量小文件的情况。
由于Linux系统对每个文件都有一定的开销,当文件数量庞大时,传统的删除方法可能效率较低,甚至会占用大量的系统资源。
因此,我们需要寻找一种快速高效的方法来删除这些大量小文件。
本文将介绍两种在Linux系统下快速删除大量小文件的方法。
第一种方法是使用基于xargs命令的管道处理方式,通过将文件列表传递给xargs 命令来批量删除文件。
第二种方法是使用find命令来查找并删除指定条件的文件,通过指定删除条件来快速删除大量小文件。
在接下来的正文中,我们将详细介绍这两种方法的具体操作步骤以及它们的优缺点。
通过了解这些方法,你将能够在Linux系统下快速高效地删除大量小文件,提高工作效率并节省系统资源。
在结论部分,我们将对这两种方法进行总结,并探讨它们的应用场景。
同时,我们还将讨论这两种方法在不同情境下的适用性,帮助读者更好地选择适合自己的删除方法。
通过本文的学习,读者将能够掌握Linux系统下快速删除大量小文件的方法,提高工作效率,节省时间和系统资源。
无论是在个人使用还是在生产环境中,这些方法都将对你有所帮助。
让我们一起开始学习吧!1.2 文章结构本文将介绍在Linux系统中快速删除大量小文件的方法。
文章主要分为引言、正文和结论三个部分。
引言部分将概述文章的主题并给出背景信息,解释为什么需要快速删除大量小文件,并指出本文的目的。
正文部分将详细介绍两种方法来快速删除大量小文件。
方法一将使用find命令结合xargs命令,通过管道的方式批量删除文件。
方法二将使用Perl脚本遍历目录并调用unlink函数删除文件。
每种方法将分别进行原理解释、具体步骤的说明以及使用示例。
结论部分将对两种方法进行总结,并指出它们适用的场景。
同时,给出了其他可能的方法和对比分析,以便读者在实际应用中选择合适的方法。
Linux下find 命令用法详解+实例 2010-02-23 21:44 用法总结如下:
简化文件系统的管理 与大多数 UNIX 命令一样,UNIX find 命令具有一长串令人生畏的选项和开关,它们会阻碍人们深入地学习该命令,但正是因吓倒。一条好的通用原则在简化一个复杂问题时都会经过漫长的过程。启动一个 xterm,并尝试执行下面的命令:
$ find . -name *.gif -exec ls {} \; -exec 参数中包含了真正有价值的操作。当查找到匹配搜索条件的文件时,-exec 参数定义了将对这些文件进行什么操作。该
1. 从当前文件夹开始往下搜索,紧跟在find 之后,使用点号 (.)。 2. 定位所有名称以 .gif 结尾的文件(图形文件)。 3. 列出所有查找到的文件,使用ls命令。
需要对 -exec 参数进行更深入地研究。当查找到匹配搜索条件的文件名时,find 命令执行ls {}字符串,用文件名和路径代件,find 将执行如下所示的命令:
$ ls ./gif_files/space/solar_system/saturn.gif 本文余下的内容建立在这条一般原则之上:仔细地使用 find 命令可以让 UNIX 文件系统的管理工作变得更加容易。例如,如果根据查找到的文件所处的文件系统的类型来对命令进行相应的处理。在 find命令对查找到的文件执行相应命令前将对您进行提示数告诉它继续执行该操作,接下来我们将对其进行介绍。
可选的执行 -ok是 -exec 参数的一个重要的替代项,它的行为和 -exec一样,但它会提示您是否要对文件运行相应的命令。假设您想要删
能够逐个文件地执行该操作。像 UNIX 中的 rm命令那样的删除操作是很危险的,因为当使用像find这样的自动化处理方式来件,您也许希望在删除这些系统查找到的文件之前对其进行仔细检查。
下面的命令列出了您的 home 目录中所有的 .txt 文件。要删除这些文件,必须在 find 命令通过列出文件名提示您确认操作时输$ find $HOME/. -name *.txt -ok rm {} \;(第一种方式) $ find /root/linshi/ -name "yum*" -exec rm -f {} \;(第二种方式)这个不经过确认
它列出了查找到的每个文件,并且系统将暂停以等待您输入 Y或者 y. 如果您按下 Enter 键,系统将不会删除该文件。清单 1 显
清单 1. 示例结果 < rm ... /home/bill/./.kde/share/apps/karm/karmdata.txt > ? < rm ... /home/bill/./archives/LDDS.txt > ? < rm ... /home/bill/./www/txt/textfile1.txt > ? < rm ... /home/bill/./www/txt/faq.txt > ? < rm ... /home/bill/./www/programs/MIKE.txt > ? < rm ... /home/bill/./www/programs/EESTRING.txt > ? . . .
系统将在每个问号之后暂停,在本示例中,每次都按下了 Enter 键以继续处理下一个文件。(没有删除任何文件。)-ok 参数允这样就添加了一种避免自动删除文件的安全措施。
如果在使用 -ok参数时涉及到过多的文件,那么一个好的方法是先运行带 -exec 的 find命令以列出所有将要删除的文件,然再次运行该命令,其中用 rm代替 ls. -exec和 -ok都非常有用,您必须确定在当前情况下哪一个能够更好的工作。请记住
创造性地使用 find 您可以使用 find命令执行各种各样的任务。本部分内容提供了使用 find命令来管理文件系统的几种方式的示例。 为了保持简单,这些示例都避免了使用涉及通过管道将一个命令的输出传递到另一个命令的 -exec命令。然而,您完全可以根据这样的命令。
清除临时文件 您可以使用 find 命令来清除目录或子目录中在正常使用过程中生成的临时文件,这样可以节省磁盘空间。要实现该操作,请使$ find . \( -name a.out -o -name '*.o' -o -name 'core' \) -exec rm {} \;
括号中的文件掩码 标识出了需要删除的文件类型,每个文件掩码的前面都有 -name. 该列表可以扩展为包括您需要清除的系统中程中,程序员及其工具会生成示例中的那些文件类型:a.out, *.o 和 core. 其他的用户通常也会生成类似的临时文件,可命令进行相应的编辑。您可能还发现将命令放入一个称作 clean的脚本中非常有用,当需要清除一个目录中的内容的时候就可以
复制目录中的内容 find 命令允许您复制目录中的全部内容,同时保持每个文件和子目录的权限、时间和所有权。要完成该操作,需要组合使用 f
清单 2. 组合使用 find 和 cpio 命令 $ cd /path/to/source/dir $ find . | cpio -pdumv /path/to/destination/dir cpio命令是一个复制命令,它设计用来将文件复制到或复制出一个 cpio 或 tar 存档文件,并自动地保持文件和子目录的权限
列出文本文件的第一行内容 有些人使用每个文本文件的第一行作为标题或者文件内容的描述。可以使用列出文件名和所有文本文件第一行内容的报表更方便地表中列出了您的 home 目录中所有文本文件的第一行内容,便于进一步地根据需要使用less命令进行检查:
清单 3. less 命令 $ find $HOME/. -name *.txt -exec head -n 1 -v {} \; > report.txt $ less < report.txt 维护 LOG 和 TMP 文件的存储空间 要为生成大量文件的应用程序维护 LOG 和 TMP 文件存储空间,可以将下列命令放入到每天运行的 cron任务中:
清单 4. 维护 LOG 和 TMP 文件存储空间 $ find $LOGDIR -type d -mtime +0 -exec compress -r {} \; $ find $LOGDIR -type d -mtime +5 -exec rm -f {} \; 第一个命令找到 $LOGDIR 目录中所有包含在 24 小时内 (-mtime +0) 进行了修改的数据的目录(-type d), 对它们进行压缩 (这些目录超过了一个工作周 (-mtime +5),第二个命令则将其删除 (rm -f {}),以便增加磁盘上的可用空间。通过这种方对目录进行维护。
复制复杂的目录树 如果您想要将复杂的目录树从一台计算机复制到另一台计算机,同时保持副本权限以及 User ID 和 Group ID(UID 和 GID——并且不复制用户文件,那么就需要再次使用 find和cpio;
清单 5. 复制复杂的目录树 $ cd /source/directory $ find . -depth -print | cpio -o -O /target/directory 查找不指向任何地方的链接 要查找不指向任何地方的链接,可以使用带 find的 perl解释器,如下所示: $ find / -type l -print | perl -nle '-e || print'; 该命令从最顶层目录 (/) 开始,列出由 perl解释器确定不指向任何地方 (-nle '-e || print') 的所有链接(-type l中这个技巧的更详细的信息,请参阅参考资料部分。如果您想要删除这些文件,可以进一步使用管道将输出传递到 rm -f {}命中找到,它是许多功能强大的解释性语言工具中的一种。
定位和重命名无法打印的目录 在 UNIX 中,可能会有错误的或恶意的程序创建包含无法打印的字符的目录。定位和重命名这些目录,这样就可以更容易地检查中包含 -i开关,以获取该目录的索引节点的数值。然后,使用 find将索引节点的数值转换为一个可以使用 mv命令进行重命
清单 6. 定位和重命名无法打印的目录 $ ls -ail $ find . -inum 211028 -exec mv {} newname.dir \; 列出长度为零的文件 要列出所有长度为零的文件,请使用下面的命令: $ find . -empty -exec ls {} \; 在查找到空文件之后,您可以选择用 rm命令来代替 ls命令,以删除这些文件。 很明显,您对 UNIX find命令的使用受到知识和创造性的限制。 结束语 使用 find命令,可以轻松地浏览 UNIX 文件系统中丰富的内容。很值得花时间来试验该命令,并了解它能为您做些什么。正如的方式来使用 find, 这样可以轻松地浏览和管理文件系统,并且充满乐趣。
find pathname -options [-print -exec -ok] pathname:查找路径 -option:主要选项如下: -name:按照文件名称查找 -perm:按照文件权限查找 -prune:不在当前指定的路径查找。如果同时指定了-depth选项,则prune被忽略 -user:按照文件属主查找 -group:按照文件属组查找 -mtime -n +n:按照文件更改时间查找。-n 指距离现在时间n天以内;+n n天以外 -nogroup:查找无效属组文件 -nouser:查找无效属主文件 -newer file1 !file2:查找更改时间比file1新比file2旧的文件 -type:查找某一类型文件 b:块设备文件 d:目录 c:字符设备文件 P:管道文件 l:符号链接文件 f:普通文件 -size n[c]查找文件长度为n块的文件 有[c]表示文件长度以字节计 -depth:查找时,首先查找当前目录文件,然后再在其子目录查找 -fstype:查找位于某一类型文件系统中的文件,文件系统类型可在/etc/fstab中找到 -mount:查找文件不跨越文件系统mount点 -follow:如遇到链接文件,则跟踪至链接所指向文件 -cpio:对匹配的文件使用cpio命令,将文件备份到磁带设备中
-print:将匹配的文件输出到标准输出 -exec:对匹配的文件执行所给的shell命令。形式为:command { } \;注意{ }和\;之间的空格 -ok:和-exec作用相同。只不过以一种更安全的模式执行该参数所给的shell命令。在执行每个命令之前,都会给出提示,让用户