Linux find命令记录

1、命令格式:
          
find pathname -options  [-print -exec ...]
 2
、命令参数:
          pathname :
查找的目录路径。例如:./表示当前目录,/表示系统根目录。
          -print
:将匹配的文件输出到标准输出。

          -exec :对前边匹配的文件执行该参数所给出的shell命令。相应命令的形式为‘command‘ {  } \;,注意{   }\;之间的空格。

  3、命令选项(options:

           -name  :安装文件名查找文件

           -perm  :安装文件权限查找文件

          -prune :该选项使find命令不在当前指定的目录中查找,如果同时使用-depth 选项,则-prune选项被find命令忽略。

           - user  :按照文件属性查找文件

          -group :安装文件所属组查找文件

           -mtime -n +n :按照文件更改的时间查找文件,-n表示文件更改时间据现在n天以内,+n表示文件更改时间据现在n天以前,atime 类似

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

          -nouser :查找无效属主的文件,即该文件属主在/etc/passwd中不存在。

          -newer file1 file2 :查找更改时间比文件file1新但比file2旧的文件。    
           -type :查找某一类型的文件,如下:

                   b  //块设备文件  (一块儿等于512字节)

                   d  //目录

                   c  //字符设备文件

                   p  //管道文件

                   l   //符号链接文件

                   f   //普通文件

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

find常用实例:

find ~ -name "*.log" -print   //查找家目录及其子目录中的文件

find . -name "*.log" -print

find . -name "[A-Z]*" -print

find /etc -name "host*" -print

find ~ -name "*" -print 或find . -print    //查找家目录下的文件

find . -name "[a-z]*[4-9].log"-print   //想在当前目录查找文件名以一个个小写字母开头,最后是4到9加上.log结束的文件

 

# find . -perm 755 -print   //当前目录下查找文件权限位为755的文件

# find test -path "test/test3"-prune -o -print   //希望在test目录下查找文件,但不希望在test/test3目录下查找

 

find . -size +1000000c -print     //在当前目录下查找文件长度大于1 M字节的文件

# find . -size +1000c -print   //查找当前目录大于1k的文件

find /home/apache -size 100c -print   //在/home/apache目录下查找文件长度恰好为100字节的文件

find . -size +10 -print     //在当前目录下查找长度超过10块的文件(一块等于512字节)

 

使用type选项:

实例1:在/etc目录下查找所有的目录 

命令:

find /etc -type d -print 

实例2:在当前目录下查找除目录以外的所有类型的文件 

命令:

find . ! -type d -print 

实例3:在/etc目录下查找所有的符号链接文件

命令:

find /etc -type l -print

 

 

# find -atime -2    //查找2天内修改过的文件

# find . -name "*.log"     //在当前目录下查找.log结尾的文件

 

# find . -type f -name"*.log"  //查找当前目录以.log结尾的普通文件

# find . -type d | sort    //查找当前所有目录并排序

 

#

*************-exec 可是使用xargs来代替比较方便书写和操作。************************

# find . -type f -exec ls -l {} \;     //查找当前目录下的普通文件后使用ls -l查看

                  对前边处理的结果再处理

可更改为:#find .=type -f|xargs ls -l   //利用管道把前边执行后的数据再处理。

 

# find . -type f -mtime +14 -exec rm {}\;  //在当前目录中查找更改时间距现在14天以前的普通文件后删除

可更改为:#find .-ytpe f -mtime +14 |xargs rm

 

# find . -name "*.log" -mtime +5-ok rm {} \;  //在当前目录下查找更改时间距现在5天之前的文件并删除他们,在删除之前先给出确认提示。

#

[[email protected] ~]# find /etc -name"passwd" |xargs grep "root"

    /etc/passwd:root:x:0:0:root:/root:/bin/bash

    /etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin

[[email protected] ~]#

 

# find . -name "*.log" -exec mv{} .. \;    //查找文件移动到指定目录#这条命令是将查到的文件移动到上一级目录下。

 

# find . -name "*.log" -exec cp{} test3 \;   //查找当前目录下以*.log结尾的文件cp到test3目录下。

可更改为:#find .-name  "*.log" |xargs cp test3

# find . -name "file" | xargs -I[] cp [] ..    //等同上一个

#

#

注:总之:xargs和exec的执行效果一样的,xargs的执行效率比exec要高很多!

# find . -type f -print | xargs file   //查找当前目录下普通文件后查下文件的属性。

# find / -name "core" -print |xargs echo "" >/tmp/core.log //在根目录下查找内存信息后标准输出的内容转存到cort.log文件中。

# find . -perm -7 -print | xargs chmodo-w   //查找当前目录下所有用户具有读、写和执行权限的文件,并收回写的权限。

# find . -type f -print | xargs grep"hostname"   //查找当前目录下的普通文件中包括hostname这个词。

# find . -name \* -type f -print | xargsgrep "hostnames"    //同上

# find . -name "*.log" | xargs -imv {} test4   //查找当前目录下包括.log的文件后移动到test4目录下。

 

# find . -name "*.log" | xargs -p -i mv {} ..   //-p 是在移动时提示确认是否执行后边的命令。

时间: 2024-10-02 18:41:24

Linux find命令记录的相关文章

linux 常用命令记录

关机命令 halt -p poweroff init 0 shutdown -h now 重启命令 init 6 reboot shutdown -r now或shutdown -r +10 10分钟后重启 shutdown -c 取消计划中开机或关机 touch 创建文件 mkdir 创建文件夹  -p 创建多级不存在目录 rm -rf * 删除所有文件 cp -r 递归复制  -a 复制文件不改变属性  \cp 覆盖式复制 alias 定义别名--- alias as="ls -a"

Linux ps命令记录

ps命令:查看当前系统进程状态 ps -a   显示当前所有进程ps -ax 显示没有控制终端的进程ps -u better   查看用户better的进程ps  aux|less 通过cpu和内存来过滤进程ps  aux --sort -pcpu    根据cpu来升序排序ps  aux --sort -pmem  根据内存使用来升序排序ps -aux --sort -pcpu,+pmem|head -n 10  综合来排序,显示前十个结果ps -C sshd    查找sshd进程ps -f

linux常用命令记录(附项目打包相关)

一.vim编辑模式下的命令: 1.跳转到末行:G 2.跳转到首行:1G 3.跳转到行首:0 4.跳转到行末:$ 5.在光标所在行的下一行插入内容:o 6.复制五行:5y 7.删除十行:10d 二.普通模式常用命令: 1.给文件夹或者文件赋权:chmod + 权限级别 +filename 2.查看占用8080端口的进程:#netstat -tlnp  | grep 8080 三.项目打包相关命令: 1.项目打包命令(war包):Mvn Clean Package 附:maven生命周期->mave

linux常用命令记录

1. 统计工具wc -w : 单词数 :-l :行数 2. 解压 tar -xvf file.tar tar -zxvf file.tar.gz  tar -jxvf file file.tar.bz2 tar -Zxvf file.tar.Z unrar file.rar unzip file.zip

linux长命令记录

wget下载jdk wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u161-b12/jdk-8u161-linux-x64.rpm 原文地址:https://www.cnblogs.com/lucaslee92/p/8477850.html

菜鸟的成长记录--linux基础命令

以下是我学习时接触的命令,后续会慢慢添加 1.tty:查看终端类型 虚拟终端:/dev/tty# 伪终端:/dev/pts/# 控制台:/dev/console 串行终端:/dev/ttyS# 2.startx:启动图形界面 3.ifconfig:查看网卡信息 4.cd:进入用户主目录 cd ~:进入用户主目录 cd ~USERNAME:进入其他用户主目录 cd -:在前一个目录和当前目录来回切换 cd .:当前目录 cd ..:上一级目录 cd ../..:返回上两级目录 cd !$:把上一个

二十七、Linux下常用的shell命令记录

本文章记录我在linux系统下常用或有用的系统级命令,包括软硬件查看.修改命令,有CPU.内存.硬盘.网络.系统管理等命令.但本文不打算介绍生僻命令,也不介绍各个linux发行版下的特有命令,且以后会持续更新. 说明,我是在一个Centos 6.4 64位的虚拟机系统进行测试.本文介绍的命令都会在此Centos下运行验证(也有部分命令会在我的suse/ubuntu系统里测试的,会做特明说明),但运行结果就不再列出了. 硬件篇 CPU相关 lscpu #查看的是cpu的统计信息. cat /pro

Linux以及Android开发中的小技巧和长繁命令记录收集

不断更新收集中.... 2014071743 ssh以nx_guest的身份登录到172.24.221.137,然后在172.24.221.137与172.24.61.252的8080端口建立网络连接,同时创建端口为5678的本地代理服务 ssh -C -f -N -o 'TCPKeepAlive=yes' -L 5678:172.24.61.252:8080 [email protected] 反编译android下的二进制程序 ./prebuilts/gcc/linux-x86/arm/ar

Linux常用命令学习记录

兄弟连Linux培训,小编整理了常用的Linux学习命令: 1 cp 拷贝命令 参数:-p 文件属性一起拷贝 -r 拷贝文件夹 -d 软链信息等一起拷贝 -a 是-rdp的简写 2 find 文件查找命令 普通根据文件名称查找(精确查找) find /home -name xx.xx 普通分局文件名称查找(模糊匹配,支持:?(单个字符),*(多个字符),[](中括号中特定内容匹配)) find /home -name "*.xx" 所有以.xx结尾的文件 根据文件所属用户查找 find