2016 - 2024

感恩一路有你

Linux命令学习:find命令的使用

浏览量:1634 时间:2024-02-06 16:22:25 作者:采采

1. 列出当前目录及子目录下所有文件和文件夹

在Linux系统中,使用find命令可以方便地查找文件或者目录。要列出当前目录及子目录下所有的文件和文件夹,输入以下命令:

```

find .

```

执行结果如下:

```

./po/da.po

./po/sv.po

./po/hr.po

```

其中,列出的文件名会加上"./"符号。

2. 在指定目录下查找特定后缀名的文件

如果想在/var/www/html/zhuan/test/libiconv-1.9.2目录下查找以".in"结尾的文件名,可以输入以下命令:

```

find /var/www/html/zhuan/test/libiconv-1.9.2 -name "*.in"

```

执行结果如下:

```

```

其中,“-name”指的是你要查找的文件名。如果想忽略大小写,可以使用"-iname"命令,例如:

```

find /var/www/html/zhuan/test/libiconv-1.9.2 -iname "*.in"

```

3. 在当前目录及子目录下查找特定类型的文件

要在当前目录及子目录下查找所有以".txt"和".pem"结尾的文件,可以输入以下命令:

```

find . -name "*.txt" -o -name "*.pem"

```

执行结果如下:

```

./rsakey私钥.pem

./rsakey公钥.pem

./aa.txt

./bb.txt

```

其中,"-o"的意思等同于英语中的"or",表示匹配文件路径或者文件。

4. 基于正则表达式匹配文件路径

如果想找出深度距离当前目录至少2个子目录的所有文件,可以输入以下命令:

```

find . -mindepth 2 -type f

```

5. 根据文件时间戳进行搜索

要搜索最近七天内被访问过的所有文件(访问不等于修改),可以输入以下命令:

```

find . -type f -atime -7

```

如果刚好等于七天,则为:

```

find . -type f -atime 7

```

如果是大于七天,则为:

```

find . -type f -atime 7

```

其中,"atime"等于append访问的意思。要搜索访问时间超过10分钟的所有文件,可以输入以下命令:

```

find . -type f -amin 10

```

要找出比abc.log修改时间更长的所有文件,可以输入以下命令:

```

find . -type f -newer abc.log

```

要搜索最近七天内被修改过的所有文件,可以输入以下命令:

```

find . -type f -mtime -7

```

其中,"mtime"等于modify修改的意思。如果要搜索最近七天内被变化过的所有文件(变化等于权限的变化),可以输入以下命令:

```

find . -type f -ctime -7

```

6. 根据文件大小进行匹配

要搜索大于10KB的文件,可以输入以下命令:

```

find . -type f -size 10k

```

同理,如果要搜索小于10KB的文件,则为:

```

find . -type f -size -10k

```

要搜索文件大小为455字节的文件,可以输入以下命令:

```

find . -type f -size 455c

```

其中,"c"代表字节。

7. 删除匹配文件

如果要删除当前目录下所有".txt"文件,可以输入以下命令:

```

find . -type f -name "*.txt" -delete

```

要找出当前目录下权限不是644的html文件,可以输入以下命令:

```

find . -type f -name "*.html" ! -perm 644

```

如果想找出根目录用户ftp拥有的所有文件,可以输入以下命令:

```

find / -type f -user ftp

```

要找出当前目录用户组sunk拥有的所有文件,可以输入以下命令:

```

find . -type f -group sunk

```

8. 结合其他命令使用

借助-exec选项与其他命令结合使用,可以找出当前目录下所有root的文件,并把所有权更改为用户tom。输入以下命令:

```

find . -type f -user root -exec chown tom {} ;

```

要找出自己家目录下所有的".txt"文件并删除,可以输入以下命令:

```

find $HOME/. -name "*.txt" -ok rm {} ;

```

"-ok"和"-exec"的行为一样,不过它会给出提示,是否执行相应的操作。

9. 搜索但跳过指定的目录

要查找当前目录或者子目录下所有".txt"文件,但是跳过子目录abc,可以输入以下命令:

```

find . -path "./abc" -prune -o -name "*.txt" -print

```

以上就是Linux系统中find命令的使用方法,希望对你在编写电脑SEO相关文章时有所帮助。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。