zoukankan      html  css  js  c++  java
  • 【Linux 命令】- find 命令

    find 是日常工具箱中功能更强大、更灵活的命令行工具之一,因此值得花费更多的时间。

    最简单的,find 跟上路径寻找一些东西。例如:

    find /

    它将找到(并打印出)系统中的每个文件。而且由于一切都是文件,你会得到很多需要整理的输出。这可能不能帮助你找到你要找的东西。你可以改变路径参数来缩小范围,但它不会比使用 ls命令更有帮助。所以你需要考虑你想要找的东西。

    也许你想在主目录中找到所有的 JPEG 文件。 -name 参数允许你将结果限制为与给定模式匹配的文件

    find ~ -name '*jpg'

    可是等等!如果它们中的一些是大写的扩展名会怎么样?-iname 就像 -name,但是不区分大小写

    find ~ -iname '*jpg'

    很好!但是 8.3 名称方案是如此的老。一些图片可能是 .jpeg 扩展名。幸运的是,我们可以将模式用“或”(表示为 -o)来组合

    find ~ ( -iname 'jpeg' -o -iname 'jpg' )

    我们正在接近目标。但是如果你有一些以 jpg 结尾的目录呢? (为什么你要命名一个 bucketofjpg 而不是 pictures 的目录就超出了本文的范围。)我们使用 -type 参数修改我们的命令来查找文件

    find ~ ( -iname '*jpeg' -o -iname '*jpg' ) -type f

    或者,也许你想找到那些命名奇怪的目录,以便稍后重命名它们:

    find ~ ( -iname '*jpeg' -o -iname '*jpg' ) -type d

    你最近拍了很多照片,所以让我们把它缩小到上周更改的文件。

    find ~ ( -iname '*jpeg' -o -iname '*jpg' ) -type f -mtime -7

    你可以根据文件状态更改时间 (ctime)、修改时间 (mtime) 或访问时间 (atime) 来执行时间过滤。 这些是在几天内,所以如果你想要更细粒度的控制,你可以表示为在几分钟内(分别是 cminmmin和 amin)。 除非你确切地知道你想要的时间,否则你可能会在 + (大于)或 - (小于)的后面加上数字。

    但也许你不关心你的照片。也许你的磁盘空间不够用,所以你想在 log 目录下找到所有巨大的(让我们定义为“大于 1GB”)文件:

    find /var/log -size +1G

    或者,也许你想在 /data 中找到 bcotton 拥有的所有文件:

    find /data -owner bcotton

    你还可以根据权限查找文件。也许你想在你的主目录中找到对所有人可读的文件,以确保你不会过度分享。

    find ~ -perm -o=r

    你还可以通过下列语句确保模式文件仅保留5天,并且所有早于此的文件都将被删除。

    find ./backup/core-files*.tar.gz -mtime +4.9 -exec rm {} ;

    上述命令中的-exec表示要对find出来的文件执行什么命令,后面紧跟的就是命令内容。rm表示删除,{}表示的就是find出来的内容。;表示rm 命令的结束,但是为了不让shell误会所以前面加了转义。

  • 相关阅读:
    20210420
    20210419
    2021041601
    20210416
    20210415
    20210414
    20210413
    20210412
    20210409
    20210405
  • 原文地址:https://www.cnblogs.com/wangwust/p/10032017.html
Copyright © 2011-2022 走看看