Linux下的指令: 查找指令:find

Linux下find命令在目录结构中搜索文件,并执行指定的操作。
1. Linux下find命令格式:

$ find pathname -options [-print -exec -ok …]

2. 命令功能:

用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)。

3. 命令参数:

pathname:find命令所查找的目录路径(也就是要在哪个目录下查找)。例如用 . 来表示当前目录,用 / 来表示系统根目录。

-options :是命令选项的意思。

-print : find命令将匹配到的文件信息输出到标准输出。

-ok:-exec命令一样,只不过以一种更安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

4.命令选项:

-name:按照文件名查找文件
例1:$ find . -name file #在当前目录下查找一个名为 file的文件( . 代表当前目录)。
例2:$find -name test* #在当前目录下查找已 test 开始的文件
例3 : $find -name test* -o -name file* #查找以test或file为开头的文件。

-perm:按照文件权限查找文件
例1: $ find . -perm 777 #在当前目录下查找权限为 rwxrwxrwx 的文件。
例2:$find . -perm -007 #在当前目录下查找最低权限为 - - - - - -****r w x 的文件。(-007表示最低权限为007,像拥有777667567等等这些权限的文件就可以显示)

-group:按照文件所属组来查找文件。
例:$ find . -group root #在当前目录下查找属于 root 组的文件。

-user:按照文件属主来查找文件。
例: $find . -user root # 在当前目录下查找属于root用户的文件。

-mtime -n +n:按照文件的更改时间来查找文件, - n 表示文件更改时间距现在n天以内,+n表示更改时间据现在 n 天以前。find命令还有-atime-ctime 选项,但他们都和-mtime选项相同。

-mmin -n +n:表示按照更改的分钟来显示。用法和-mtime -n +n 的用法相同。
例:
$find / -mtime -5 #在系统中查找在5天之内更改过的文件。
$find / -amin -60 #在系统中查找在60分钟之内更改过的文件。
$find / -amin +60 #在系统中查找在60分钟之前更改过的文件。

-nogroup :查找无有效所属组的文件,即该所属的组在/etc/groups中不存在。

-nouser:查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
例: $ find / -newer file1 ! file2

-type查找某一类型文件,诸如:
b - 块设备文件。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
例: $ find / -type d #查找系统下的所有目录。

-size n:[c] 查找文件长度为n块的文件,带有 c 时表示文件长度以字节计。

例1:$ find . -size 500 #在当前目录下查找长度为500块的文件(一块为512字节)
例3:$ find . -size -500 #查找小于500字节的文件
例5:$ find . -size -500c -size +400c # 查找小于500而大于400字节的文件
例6 :$ find -empty # 查找大小为0的文件或空目录。

-depth :在查找文件时,首先查找当前目录下的文件,然后再在其他子目录下查找。

-follow :如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。

-cpio :对匹配的文件使用cpio命令,将这些文件备份到磁盘设备中。

命令练习:

1.在 /logs 目录中查找更改时间在5天以前的文件并删除它们:

 $ find /logs -type f -mtime +5 -exec rm {} \;

2.在/root目录下用find 命令查找文件大小为60字节的文件

 $ find /root -size 60c -exec ls -ld {} \;

3.在/root目录下用find 命令查找小于500k大于50k的文件。

 find /root -size -500k -size +50k -exec ls -ld {} \;

4.查找 / 目录下文件名为 test 的目录。

$ find / -name test -type d

5.查找系统中最近5分钟访问的目录。

 $ find / -amin -5 -type d

6.查找系统中最近5天访问的文件

  $ find / -atime -5 -type f

7.查找所有目录中名称中按照“ .log ”结尾的目录。

 $ find / -name *.log -type d

8.查找当前目录下所有权限为755的文件,并设置成777.

 $ find . -perm 755 -type f -exec chmod 777 {} \;

9.查找文件大小为10k的文件,并删除。

$ find . -size 10k -type f -exec rm {} \;

10**.**查找一个名为test.txt的文件并打印其内容。

  $ find -name test.txt -exec cat {} \;
  11.find / -name filename | xargs rm -rf #找到文件并删除。(|:(竖杠)管道 (pipeline),连结上个指令的标准输出,做为下个指令的标准输入。)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux中有多种用于查找文件和目录的指令,下面是对which、whereis、locate、find和grep指令的介绍以及示例: 1. which:用于查找可执行文件的路径。它会在环境变量$PATH指定的路径中搜索指定的命令,并返回第一个匹配到的完整路径。 示例:假设我们要查找命令ls的路径,可以使用以下命令: ``` which ls ``` 输出结果可能是:/bin/ls 2. whereis:用于查找二进制文件、源代码文件和帮助文档的路径。它会在特定的目录中搜索指定的文件,并返回相关信息。 示例:假设我们要查找命令ls的二进制文件、源代码文件和帮助文档的路径,可以使用以下命令: ``` whereis ls ``` 输出结果可能是:/bin/ls /usr/share/man/man1/ls.1.gz 3. locate:用于快速查找文件或目录。它会在系统预先建立的数据库中搜索匹配的文件或目录,并返回结果。 示例:假设我们要查找所有以.txt结尾的文件,可以使用以下命令: ``` locate *.txt ``` 输出结果可能是:/home/user/file1.txt /home/user/file2.txt /var/log/file3.txt 4. find:用于在指定目录下递归地搜索文件和目录。它可以根据不同的条件进行搜索,并返回匹配的结果。 示例:假设我们要在当前目录下查找所有以.txt结尾的文件,可以使用以下命令: ``` find . -name "*.txt" ``` 输出结果可能是:./file1.txt ./file2.txt ./dir1/file3.txt 5. grep:用于在文件中搜索指定的模式。它可以根据正则表达式匹配文本,并返回匹配的行。 示例:假设我们要在文件file.txt中查找包含"hello"的行,可以使用以下命令: ``` grep "hello" file.txt ``` 输出结果可能是:This is a hello world example.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值