`
sundful
  • 浏览: 1254097 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux Find命令(学习心得+转载)

阅读更多
要对一个拥有好几千/万个文件的目录进行筛选,只提取*.data文件,并且要求删除<=10k的文件*.data
,将最后剩下的文件进行打包,网上搜了一下,发现find命令挺强大的,再查了一下shell的for循环语句,顺利将功能完成,快速简单,命令如下:

1.find 筛选文件
  I:  find ./destDirPath/ -name "*[^.data]" #筛选出任何不是*.data文件
  II: find ./destDirPath/ -name "*.data" -size +10k #筛选出size>10k的*.data文件
  注意,第二条size开关后面的+/-号,可以控制文件大于/小于指定大小 

2.shell脚本:利用for循环语句完成功能
   #!bin/bash
   for DataFile in $(find ./destDirPath/ -name "*[^.data]")
   do
        #找到任何不是*.data的文件,并删除之
        rm ./$DataFile
   done
  
   for DataFile in $(find destDirPath/ -name *.data -size -10k)
   do
        #筛选出任何size<10的文件,并删除之
        rm ./$DataFile
   done


   for DataFile in $(find ./server2-data/ -name *.data -size 10k)
   do
        #筛选出任何size=10k的文件,并删除之
        rm ./$DataFile
   done

呵呵,网上搜了下,并马上写出来,赞扬下自己,第一次写真正的shell脚本,nice~~~

3.tar打包命令
   I: tar -czvf ./destDirPath.tar.gz ./destDirPath  #压缩
   其中-c表示创建压缩包,-z表以gzip方式压缩,-v表显示压缩信息,-f后面一定要跟着压缩的打包名字

   II:tar -xzvf ./destDirPath.tar.gz
   其中-x表示解压缩

=============华丽丽分割线,转载如下==============
我们经常要在日常的工作中查找文件,要说linux下最强大的文件查找工具,非find莫属。find可以从文件名、读取修改时间、大小、类型等等来筛选文件,可以完成日常几乎所有的查找需求。
来看一个简单的例子:
find /tmp/ -name 'galeki*'
意思就是在/tmp目录下找出以“galeki”开头的文件,-name指出是对文件名进行筛选,是不是很简单明了?除了文件名,find还有更强大的筛选条件:
1.时间:
参数 意义
-atime n 上一次存取时间在n*24小时前以内的文件
-ctime n 上一次状态改变在n*24小时前以内的文件
-mtime n 上一次修改时间在n*24小时前以内的文件
-newer file 比file所指的文件还要新的文件
2.大小:
参数 意义
-size n[bkMG] 大小为n(b为比特,k为KB,M为MB,G为GB)的文件

3.所有者:

参数 意义
-user name 所有者用户名称是name的文件
-group name 所有者用户组群名称是name的文件

例子:

find /tmp/ -name 'sess*' -mtime 1   #在/tmp目录下找到所有以'sess'开头、并且在一个小时以内修改过的文件
find ./ -name '*.zip' -size 546k       #在当前目录下找到所有546KB的zip压缩包文件
find /tmp/ -user 'galeki'               #在/tmp目录下找到所有所有者为galeki的文件
另外,还可以用"+"、"-"来进一步修饰时间和大小的条件:
find src/ -mtime +2            #找出src目录下上一次修改时间在2天以前的文件
find download/ -size +50M    #在download目录下找出大于50M的文件
光找出文件还不够,我们还要对找出的文件进行处理才有意义,一般来讲可以把find的查找结果传递给其他的命令做进一步处理。find本身也提供了许多处理动作的选项。
常用的处理动作:
参数 意义
-print
打印出找出文件的完整地址,一个文件一行
-delete
删除找出的文件
-exec command {} \;
对每一个找到的文件执行command命令,
并用文件替换"{}",“\;”是固定的结束符。

 

 

 

 

 

例子:

find /tmp/ -ctime +7 -delete            #删除/tmp目录下一周以前创建的文件
find ./ -name '*.unk' -exec file {} \;   #找出当前文件夹下后缀是unk的文件,并用file命令显示每个文件的文件类型
分享到:
评论

相关推荐

    Linux Find命令详解---教你认识强大的Linux Find命令

    Linux Find命令是Linux系统中一个极其重要的工具,它允许用户在文件系统中查找符合特定条件的文件和目录。这个命令的灵活性和强大性使得它成为系统管理员和开发者的必备技能。下面将详细介绍Linux Find命令的一些...

    Linux find 按文件修改时间查找文件

    在Linux系统中,`find`命令是非常强大的文件搜索工具之一,它能够帮助用户根据不同的条件查找文件,包括文件名、大小、类型以及文件最后修改时间等。本篇文章将重点介绍如何利用`find`命令按文件最后修改时间进行...

    Linux常用命令+Head+First+设计模式

    文件"Linux常用命令全集.CHM"可能包含了所有常见的Linux命令及其详细解释,而"Head+First+设计模式.pdf"则是关于设计模式的详细教程,适合初学者阅读。这两份资料结合,将为你的Linux学习和软件开发之路提供宝贵的...

    Linux shell命令学习心得

    本文将深入探讨Linux shell命令的学习心得,分享一些实用技巧和常见命令的用法。 首先,Linux shell是操作系统与用户交互的接口,它允许用户通过输入命令来执行各种任务。在众多shell类型中,Bash(Bourne-Again ...

    linux find命令使用手册

    ### Linux Find 命令使用手册详解 #### 概述 `find` 是一个功能强大的命令行工具,用于在Linux系统中的目录树中查找文件。它支持多种选项和表达式来帮助用户根据特定条件筛选出目标文件。此文档将详细介绍`find`...

    linux find 命令大全

    ### Linux Find 命令详解 #### 概述 `find` 命令是 Linux 系统中一个非常强大的工具,用于在指定路径下查找文件。它支持多种选项来帮助用户精确地定位到需要的文件。通过 `find` 命令,用户可以基于文件名、文件...

    linux下find命令的用法

    "linux下find命令的用法" Linux 操作系统下的文件查找命令是 find 命令,这个命令可以帮助用户在 Linux 系统中快速查找需要的文件。find 命令的使用方法非常多样化,可以根据文件名、文件大小、文件类型、修改时间...

    Linux中find命令的用法汇总

    在这篇文章中,我们将学习如何使用 find 命令以及它所提供的选项来查找文件。 在绝大多数Linux发行版中,你都可以直接使用 find 命令而无需进行任何安装操作。如果你想在linux系统的命令行中变得特别高效,那么 find...

    使用find命令查找Linux中的隐藏文件的方法.docx

    使用find命令查找Linux中的隐藏文件的方法 find命令是Linux和Unix系统中最强大和灵活的命令之一,能够根据不同的选项和参数来实现各种文件搜索和管理任务。下面将详细介绍如何使用find命令查找Linux中的隐藏文件。 ...

    Linux Find 命令详解

    ### Linux Find 命令详解 #### 一、前言:了解 find 命令 `find` 是 Linux 和类 Unix 系统中一个非常强大的工具,用于在文件系统中搜索文件。它提供了多种选项来根据不同的标准进行精确查找,如文件名、权限、拥有...

    linux常用命令大全(linux基础命令+命令备忘录+面试复习).docx

    在Linux操作系统中,掌握一些基本的命令是至关重要的,无论是对于运维人员、测试工程师还是开发者,熟练使用Linux命令能够极大地提高工作效率。以下是一些常见的Linux基础命令及其应用场景: 1. **ls**:列出目录...

    Linux操作系统 命令大全+详解(2)(必备基础)【精】

    通过以上对 `cat`、`cd`、`chmod`、`chown`、`cp`、`cut` 和 `find` 命令的详细解析,我们可以看到这些命令在日常管理和维护 Linux 系统的过程中是非常重要的。熟练掌握它们不仅能够提高工作效率,还能帮助我们更好...

    linux find命令说明

    Linux find 命令说明 Linux find 命令是 Linux 系统中一个功能强大且灵活的命令,它可以根据各种条件来查找文件和目录。Find 命令的基本语法是 `find [pathname] [expression]`,其中 `pathname` 是要搜索的目录或...

    linux查找文件命令find.docx

    Linux 查找文件命令 find Linux 操作系统中查找文件是一件比较麻烦的事情,需要使用专门的“查找”命令来寻找在硬盘上的文件。Find 命令是 Linux 中最常用的查找文件命令,可以帮助用户快速地查找到需要的文件。 ...

    linux下find命令

    Linux 下 find 命令详解 find 命令是 Linux 系统中一个功能强大且常用的命令,用于在文件系统中搜索文件。它可以根据文件的各种属性,如名称、权限、所有者、组、时间戳、大小等,来查找指定的文件。 基本语法 ...

    linux下find命令查找排除命令(简单明了)

    ### Linux下的find命令查找与排除命令详解 在Linux系统中,`find`命令是一个非常强大的工具,用于在文件系统中搜索文件。通过结合不同的选项和参数,用户可以精确地定位到所需的文件或目录。本文将重点介绍如何使用...

    Linux find 命令使用小技巧一则

    在Linux系统中,`find`命令是一个非常强大的工具,它允许用户在文件系统中搜索符合特定条件的文件或目录。本文将深入探讨如何利用`find`命令的一个实用技巧,即根据时间戳删除指定天数之前的目录,这对于定期清理...

    Linux-find命令详解

    超级详细的Linux,find命令详解,很实用适合Linux学习爱好者!

    linux电子书(命令大全+初级教程+新手管理员指南)

    "Linux命令大全.chm" 是一个非常实用的参考资料,其中列出了大量的Linux命令,包括它们的功能、参数和使用示例。Linux命令行的强大之处在于它的可扩展性和灵活性,理解并熟练运用各种命令是成为Linux高手的关键。这...

Global site tag (gtag.js) - Google Analytics