zoukankan      html  css  js  c++  java
  • Linux文件及目录查找


    Linux文件及目录查找

    一which——显示命令的完整路径

    [root@centos71 ~]# which  ls
    alias ls='ls --color=auto'
        /usr/bin/ls
    [root@centos71 ~]# which  cp
    alias cp='cp -i'
        /usr/bin/cp
    [root@centos71 ~]# which  cat  
    /usr/bin/cat
    [root@centos71 ~]# which  cd
    /usr/bin/cd
    [root@centos71 ~]# which  ping
    /usr/bin/ping
    [root@centos71 ~]# echo  $PATH 
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    [root@centos71 ~]# 

    二whereis 

    [root@centos71 ~]# whereis cp
    cp: /usr/bin/cp /usr/share/man/man1/cp.1.gz
    [root@centos71 ~]# mv   /usr/share/man/man1/cp.1.gz  /tmp/
    [root@centos71 ~]# ls  /tmp/cp.1.gz 
    /tmp/cp.1.gz
    [root@centos71 ~]# man cp
    No manual entry for cp
    [root@centos71 ~]# whereis   cd
    cd: /usr/bin/cd /usr/share/man/man1/cd.1.gz
    [root@centos71 ~]# whereis   cat  
    cat: /usr/bin/cat /usr/share/man/man1/cat.1.gz
    [root@centos71 ~]# whereis   pwd
    pwd: /usr/bin/pwd /usr/include/pwd.h /usr/share/man/man1/pwd.1.gz
    [root@centos71 ~]# whereis   ping
    ping: /usr/bin/ping /usr/share/man/man8/ping.8.gz

    三locate

    缺点:无法区分类型,要及时更新数据库

    updatedb是更新数据库文件

    巧记:
    数据库文件相当于大学宿舍名单册,里面记录了大学生的住宿情况,名字和宿舍对应起来了。

    宿舍的人搬走了,但是没有在名单上更新就无法在宿舍找到这个人了。

    [root@centos71 ~]# yum  provides  locate
    Loaded plugins: fastestmirror
    Repository base is listed more than once in the configuration
    Loading mirror speeds from cached hostfile
     * base: mirrors.aliyun.com
     * extras: mirrors.aliyun.com
     * updates: mirrors.aliyun.com
    mlocate-0.26-8.el7.x86_64 : An utility for finding files by name
    Repo        : base
    Matched from:
    Filename    : /usr/bin/locate
    
    
    
    mlocate-0.26-8.el7.x86_64 : An utility for finding files by name
    Repo        : @base
    Matched from:
    Filename    : /usr/bin/locate
    [root@centos71 ~]# locate ping.sh
    locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
    [root@centos71 ~]# update
    -bash: update: command not found
    [root@centos71 ~]# updatedb
    [root@centos71 ~]# locate ping.sh
    /shell_scriprs/.ping.sh.swp
    /shell_scriprs/ping.sh
    [root@centos71 ~]# touch  hahah.sh
    [root@centos71 ~]# locate hahah.sh 
    [root@centos71 ~]# updatedb
    [root@centos71 ~]# locate hahah.sh 
    /root/hahah.sh
    [root@centos71 ~]# yum  provides find
    Loaded plugins: fastestmirror
    Repository base is listed more than once in the configuration
    Loading mirror speeds from cached hostfile
     * base: mirrors.aliyun.com
     * extras: mirrors.aliyun.com
     * updates: mirrors.aliyun.com
    1:findutils-4.5.11-6.el7.x86_64 : The GNU versions of find utilities (find and xargs)
    Repo        : base
    Matched from:
    Filename    : /usr/bin/find
    
    
    
    1:findutils-4.5.11-6.el7.x86_64 : The GNU versions of find utilities (find and xargs)
    Repo        : @anaconda
    Matched from:
    Filename    : /usr/bin/find

    四find

    find的查找条件

    语法:find    查找区域目录信息    搜索的条件

    (一)根据目录层级查找数据

    注意此参数一定要放在命令的最前面

    查找目录里面的内容,没有指定文件类型那么就是文件和目录

    [root@centos71 ~]# find  /etc/sysconfig/network-scripts/    -maxdepth  1
    /etc/sysconfig/network-scripts/
    /etc/sysconfig/network-scripts/ifcfg-lo
    /etc/sysconfig/network-scripts/ifdown
    /etc/sysconfig/network-scripts/ifdown-bnep
    /etc/sysconfig/network-scripts/ifdown-eth
    /etc/sysconfig/network-scripts/ifdown-ippp
    /etc/sysconfig/network-scripts/ifdown-ipv6
    /etc/sysconfig/network-scripts/ifdown-isdn
    /etc/sysconfig/network-scripts/ifdown-post
    /etc/sysconfig/network-scripts/ifdown-ppp
    /etc/sysconfig/network-scripts/ifdown-routes
    /etc/sysconfig/network-scripts/ifdown-sit
    /etc/sysconfig/network-scripts/ifdown-tunnel
    /etc/sysconfig/network-scripts/ifup
    /etc/sysconfig/network-scripts/ifup-aliases
    /etc/sysconfig/network-scripts/ifup-bnep
    /etc/sysconfig/network-scripts/ifup-eth
    /etc/sysconfig/network-scripts/ifup-ippp
    /etc/sysconfig/network-scripts/ifup-ipv6
    /etc/sysconfig/network-scripts/ifup-isdn
    /etc/sysconfig/network-scripts/ifup-plip
    /etc/sysconfig/network-scripts/ifup-plusb
    /etc/sysconfig/network-scripts/ifup-post
    /etc/sysconfig/network-scripts/ifup-ppp
    /etc/sysconfig/network-scripts/ifup-routes
    /etc/sysconfig/network-scripts/ifup-sit
    /etc/sysconfig/network-scripts/ifup-tunnel
    /etc/sysconfig/network-scripts/ifup-wireless
    /etc/sysconfig/network-scripts/init.ipv6-global
    /etc/sysconfig/network-scripts/network-functions
    /etc/sysconfig/network-scripts/network-functions-ipv6
    /etc/sysconfig/network-scripts/ifdown-Team
    /etc/sysconfig/network-scripts/ifdown-TeamPort
    /etc/sysconfig/network-scripts/ifup-Team
    /etc/sysconfig/network-scripts/ifup-TeamPort
    /etc/sysconfig/network-scripts/ifcfg-eth0
    [root@centos71 ~]# find  /etc/sysconfig/network-scripts/    -maxdepth  1   |  wc
         36      36    1529

     查看/var/目录下的所有文件和目录

    [root@centos71 ~]# ls  -al   /var/
    total 16
    drwxr-xr-x. 19 root root  267 Nov 26 17:39 .
    dr-xr-xr-x. 24 root root 4096 Dec 16 01:25 ..
    drwxr-xr-x.  2 root root    6 Apr 11  2018 adm
    drwxr-xr-x.  6 root root   59 Nov 26 17:33 cache
    drwxr-xr-x.  2 root root    6 Nov  5  2018 crash
    drwxr-xr-x.  3 root root   34 Nov 26 17:33 db
    drwxr-xr-x.  3 root root   18 Nov 26 17:33 empty
    drwxr-xr-x.  2 root root    6 Apr 11  2018 games
    drwxr-xr-x.  2 root root    6 Apr 11  2018 gopher
    drwxr-xr-x.  3 root root   18 Nov 26 17:32 kerberos
    drwxr-xr-x. 30 root root 4096 Dec 12 15:55 lib
    drwxr-xr-x.  2 root root    6 Apr 11  2018 local
    lrwxrwxrwx.  1 root root   11 Nov 26 17:31 lock -> ../run/lock
    drwxr-xr-x.  8 root root 4096 Dec 16 05:14 log
    lrwxrwxrwx.  1 root root   10 Nov 26 17:31 mail -> spool/mail
    drwxr-xr-x.  2 root root    6 Apr 11  2018 nis
    drwxr-xr-x.  2 root root    6 Apr 11  2018 opt
    drwxr-xr-x.  2 root root    6 Apr 11  2018 preserve
    lrwxrwxrwx.  1 root root    6 Nov 26 17:31 run -> ../run
    drwxr-xr-x. 10 root root  118 Nov 26 17:33 spool
    drwxrwxrwt.  3 root root   18 Dec 16 09:59 tmp
    -rw-r--r--.  1 root root  163 Nov 26 17:31 .updated
    drwxr-xr-x.  2 root root    6 Apr 11  2018 yp
    [root@centos71 ~]# ls  -al   /var/  |  wc
         24     215    1156

    查看/var/目录下的所有目录,注意有3个是软链接

    [root@centos71 ~]# ls   -d  /var/*  | wc
         20      20     205
    [root@centos71 ~]# ls   -ld  /var/*  | wc
         20     186    1104
    [root@centos71 ~]# ls   -ld  /var/*  
    drwxr-xr-x.  2 root root    6 Apr 11  2018 /var/adm
    drwxr-xr-x.  6 root root   59 Nov 26 17:33 /var/cache
    drwxr-xr-x.  2 root root    6 Nov  5  2018 /var/crash
    drwxr-xr-x.  3 root root   34 Nov 26 17:33 /var/db
    drwxr-xr-x.  3 root root   18 Nov 26 17:33 /var/empty
    drwxr-xr-x.  2 root root    6 Apr 11  2018 /var/games
    drwxr-xr-x.  2 root root    6 Apr 11  2018 /var/gopher
    drwxr-xr-x.  3 root root   18 Nov 26 17:32 /var/kerberos
    drwxr-xr-x. 30 root root 4096 Dec 12 15:55 /var/lib
    drwxr-xr-x.  2 root root    6 Apr 11  2018 /var/local
    lrwxrwxrwx.  1 root root   11 Nov 26 17:31 /var/lock -> ../run/lock
    drwxr-xr-x.  8 root root 4096 Dec 16 05:14 /var/log
    lrwxrwxrwx.  1 root root   10 Nov 26 17:31 /var/mail -> spool/mail
    drwxr-xr-x.  2 root root    6 Apr 11  2018 /var/nis
    drwxr-xr-x.  2 root root    6 Apr 11  2018 /var/opt
    drwxr-xr-x.  2 root root    6 Apr 11  2018 /var/preserve
    lrwxrwxrwx.  1 root root    6 Nov 26 17:31 /var/run -> ../run
    drwxr-xr-x. 10 root root  118 Nov 26 17:33 /var/spool
    drwxrwxrwt.  3 root root   18 Dec 16 09:59 /var/tmp
    drwxr-xr-x.  2 root root    6 Apr 11  2018 /var/yp

    查找一级目录,不显示软链接对应的目录,但是把父目录也显示了

    [root@centos71 ~]# find  /var/   -maxdepth   1  -type  d  
    /var/
    /var/tmp
    /var/lib
    /var/log
    /var/adm
    /var/cache
    /var/db
    /var/empty
    /var/games
    /var/gopher
    /var/local
    /var/nis
    /var/opt
    /var/preserve
    /var/spool
    /var/yp
    /var/kerberos
    /var/crash
    [root@centos71 ~]# find  /var/   -maxdepth   1  -type  d  | wc
         18      18     182

    查找指定的一层

    只在第2层查找,那么最大和最小都是2层

    [root@centos72 ~]# find  /etc  -mindepth  2   -maxdepth    2   -name  "network"
    /etc/sysconfig/network

    最小层比较难理解的

    -mindepth    查找数据最小深度

    搜索最大3层,最小2层和搜索最小2层,最大3层显示结果是一样的,其位置不讲究

     
    [root@centos72 ~]# find  /etc  -mindepth  2   -maxdepth    3   -name  "network"
    /etc/rc.d/init.d/network
    /etc/sysconfig/network
    [root@centos72 ~]# find  /etc  -maxdepth    3  -mindepth  2   -name  "network"
    /etc/rc.d/init.d/network
    /etc/sysconfig/network
     

    (二)根据文件名称查找数据

    可以结合通配符*进行匹配

    [root@centos71 ~]# find  /shell_scriprs     -name   "ping"   
    [root@centos71 ~]# find  /shell_scriprs     -name   "ping*"   
    /shell_scriprs/ping.sh
    [root@centos71 ~]# find  /shell_scriprs     -name   "usr*"   
    /shell_scriprs/usr_ramdel.sh
    /shell_scriprs/usr_rampswd.sh
    /shell_scriprs/usr_del.sh
    /shell_scriprs/usr_pswd.sh
    /shell_scriprs/usr_ram_crt.sh
    /shell_scriprs/usr_ram_crt.txt
    /shell_scriprs/usr.sh
    /shell_scriprs/usrname.txt

    (三)根据文件类型查找数据

    -type TYPE:

    f: 普通文件

    d: 目录文件

    l: 符号链接文件

    s:套接字文件

    b: 块设备文件

    c: 字符设备文件

    p: 管道文件

    [root@centos71 ~]# find  /shell_scriprs/    -type  f   
    /shell_scriprs/usr_ramdel.sh
    /shell_scriprs/usr_rampswd.sh
    /shell_scriprs/usr_del.sh
    /shell_scriprs/usr_pswd.sh
    /shell_scriprs/hacker.sh
    /shell_scriprs/usr_ram_crt.sh
    /shell_scriprs/usr_ram_crt.txt
    /shell_scriprs/usr.sh
    /shell_scriprs/usrname.txt
    /shell_scriprs/create_usr.sh
    /shell_scriprs/ping.sh

    (四)根据文件大小查找数据

    寻找小于10k文件,注意是小写字母k

    [root@centos71 ~]# find  /shell_scriprs    -size   -10k
    /shell_scriprs
    /shell_scriprs/usr_ramdel.sh
    /shell_scriprs/usr_rampswd.sh
    /shell_scriprs/usr_del.sh
    /shell_scriprs/usr_pswd.sh
    /shell_scriprs/hacker.sh
    /shell_scriprs/usr_ram_crt.sh
    /shell_scriprs/usr_ram_crt.txt
    /shell_scriprs/usr.sh
    /shell_scriprs/usrname.txt
    /shell_scriprs/create_usr.sh
    /shell_scriprs/ping.sh



    寻找大小正好是20K的文件

    [root@centos71 ~]# find  /tmp/   -size   20k
    /tmp/yum_save_tx.2019-12-11.12-42.LMzjWj.yumtx
    [root@centos71 ~]# ll  -h /tmp/yum_save_tx.2019-12-11.12-42.LMzjWj.yumtx
    -rw------- 1 root root 20K Dec 11 12:42 /tmp/yum_save_tx.2019-12-11.12-42.LMzjWj.yumtx

    寻找大于10M文件

    [root@centos71 ~]# find  /var/  -size +10M
    /var/lib/rpm/Packages
    /var/log/messages-20191212
    /var/cache/yum/x86_64/7/base/gen/primary_db.sqlite
    /var/cache/yum/x86_64/7/base/gen/filelists_db.sqlite
    /var/cache/yum/x86_64/7/updates/gen/primary_db.sqlite
    /var/cache/yum/x86_64/7/updates/gen/filelists_db.sqlite
    /var/cache/yum/x86_64/7/epel/gen/primary_db.sqlite

    注意找不到大小带浮点数的文件

    [root@centos71 ~]# du  -s  /app/  -h
    412K    /app/
    [root@centos71 ~]# ls  /app/ -l
    total 84
    drwxrwxrwx 2  500  500  4096 Apr  1  2002 cmatrix-1.2a
    -rw-r--r-- 1 root root 74376 Dec 10 15:53 cmatrix-1.2a.tar.gz
    [root@centos71 ~]#  find  /app/ -size   -1.5k
    find: Invalid argument `-1.5k' to -size
    [root@centos71 ~]# dd if=/dev/zero of=/app/03.txt bs=150M count=10
    10+0 records in
    10+0 records out
    1572864000 bytes (1.6 GB) copied, 69.2731 s, 22.7 MB/s
    [root@centos71 ~]# ll  -h  /app/
    total 1.5G
    -rw-r--r-- 1 root root 1.5G Dec 13 14:48 03.txt
    drwxrwxrwx 2  500  500 4.0K Dec 10 15:55 cmatrix-1.2a
    -rw-r--r-- 1 root root  73K Dec 10 15:53 cmatrix-1.2a.tar.gz
    [root@centos71 ~]# find  /app/ -size 1.5G
    find: Invalid argument `1.5G' to -size

    (五)根据条件逻辑查找数据


    请找出文件大小是大于6k 并且找出文件名称xxxx开头的文件
    注意逻辑关系  -a 是默认的,可加可不加

    [root@centos71 test]# pwd
    /test
    [root@centos71 test]# ll -h
    total 140K
    -rw-r--r-- 1 root root 137K Dec 16 00:52 english_words.txt
    [root@centos71 test]# find   .   -name  "english*"   -size +6k
    ./english_words.txt

    注意如果没有指明路径那么默认就是当前路径

    [root@centos71 test]# find     -name  "english*"  -a   -size +6k
    ./english_words.txt


     

    [root@centos71 test]# find      -size +6k  -a    -name  "english*"
    ./english_words.txt


           
    找出文件名称是chinese开头的文件或者english开头的文件

    联系中学数学并和或的关系

    [root@centos71 test]# find  -name   "chinese*"   -o   -name  "english*"
    ./english_words.txt
    ./chinese.txt

    (六)根据时间条件查找数据

    查找距离当前时间7天以前的数据,也就是比七天更长的数据

    数据包括文件和目录

    [root@centos71 ~]# ll  -d /etc/sysconfig/network
    -rw-r--r--. 1 root root 22 Nov 26 17:36 /etc/sysconfig/network
    [root@centos71 ~]# find  /etc/sysconfig/network    -mtime +7  
    /etc/sysconfig/network

    找距离当前时间7天以内的数据

    [root@centos71 ~]# ll  -t   /var/log
    total 134236
    -rw-r--r--. 1 root   root      300760 Dec 16 12:12 lastlog
    -rw-rw-r--. 1 root   utmp      153600 Dec 16 12:12 wtmp
    -rw-------  1 root   root        4547 Dec 16 12:12 secure
    -rw-------  1 root   root       52361 Dec 16 12:12 messages
    -rw-------  1 root   root        6310 Dec 16 12:01 cron
    -rw-------  1 root   root         784 Dec 16 09:58 maillog
    -rw-------. 1 root   root       32204 Dec 16 09:58 boot.log
    -rw-r--r--. 1 root   root       74329 Dec 16 09:58 vmware-vmsvc.log
    -rw-r--r--  1 root   root         678 Dec 16 09:51 vmware-network.log
    -rw-r--r--  1 root   root         700 Dec 16 09:51 vmware-network.1.log
    -rw-r--r--  1 root   root         678 Dec 16 09:50 vmware-network.2.log
    -rw-r--r--  1 root   root         700 Dec 16 09:50 vmware-network.3.log
    -rw-r--r--  1 root   root         678 Dec 16 08:32 vmware-network.4.log
    -rw-r--r--  1 root   root         700 Dec 16 07:45 vmware-network.5.log
    -rw-r--r--. 1 root   root       51229 Dec 16 05:14 vmware-vgauthsvc.log.0
    -rw-r--r--  1 root   root      122258 Dec 16 05:14 dmesg
    -rw-r--r--  1 root   root      122225 Dec 16 05:07 dmesg.old
    -rw-------  1 root   root           0 Dec 15 17:16 spooler
    -rw-------  1 root   root        8082 Dec 15 17:16 boot.log-20191215
    -rw-------  1 root   root       14461 Dec 15 17:16 cron-20191215
    -rw-------  1 root   root      452288 Dec 15 17:06 messages-20191215
    -rw-------  1 root   root       15561 Dec 15 16:51 secure-20191215
    -rw-------  1 root   root        1780 Dec 15 16:51 maillog-20191215
    -rw-r--r--  1 root   root         678 Dec 15 16:51 vmware-network.6.log
    -rw-r--r--  1 root   root         700 Dec 14 21:12 vmware-network.7.log
    drwxrwx---  2 nginx  root          70 Dec 14 10:36 nginx
    -rw-------  1 root   root        7985 Dec 14 10:36 boot.log-20191214
    -rw-r--r--  1 root   root         678 Dec 14 09:43 vmware-network.8.log
    -rw-r--r--  1 root   root         756 Dec 13 22:48 vmware-network.9.log
    -rw-------  1 root   root       31945 Dec 13 09:17 boot.log-20191213
    -rw-------. 1 root   root        9666 Dec 12 21:47 yum.log
    -rw-------. 1 root   utmp        1536 Dec 12 11:41 btmp
    -rw-------  1 root   root           0 Dec 12 03:45 spooler-20191215
    -rw-------  1 root   root       15955 Dec 12 03:45 boot.log-20191212
    -rw-------. 1 root   root       25722 Dec 12 03:45 cron-20191212
    -rw-------. 1 root   root   134742312 Dec 12 03:01 messages-20191212
    -rw-------. 1 root   root       69243 Dec 11 23:17 secure-20191212
    -rw-------. 1 root   root        2896 Dec 11 23:04 maillog-20191212
    -rw-------  1 root   root       23986 Dec 11 09:39 boot.log-20191211
    -rw-------  1 root   root       24281 Dec 10 03:22 boot.log-20191210
    -rw-------  1 root   root       23606 Dec  9 03:43 boot.log-20191209
    -rw-------. 1 root   root           0 Dec  5 09:19 spooler-20191212
    -rw-------. 1 root   root       13252 Dec  5 09:19 cron-20191205
    -rw-------. 1 root   root     1192899 Dec  5 09:15 messages-20191205
    -rw-------. 1 root   root       18702 Dec  5 08:34 secure-20191205
    -rw-------. 1 root   root        1746 Dec  5 08:34 maillog-20191205
    -rw-------. 1 root   utmp        1920 Nov 27 23:24 btmp-20191205
    drwxr-xr-x. 2 root   root          23 Nov 26 17:39 tuned
    -rw-r--r--. 1 root   root           0 Nov 26 17:39 firewalld
    drwx------. 2 root   root          23 Nov 26 17:39 audit
    drwxr-xr-x. 2 root   root           6 Nov 26 17:37 rhsm
    drwxr-xr-x. 2 root   root         176 Nov 26 17:37 anaconda
    -rw-------. 1 root   root           0 Nov 26 17:33 spooler-20191205
    -rw-r--r--. 1 root   root         193 Nov 26 17:32 grubby_prune_debug
    -rw-------. 1 root   root           0 Nov 26 17:32 tallylog
    drwxr-xr-x. 2 chrony chrony         6 Aug  8 19:40 chrony
    [root@centos71 ~]# find  /var/log/   -mtime -7  
    /var/log/
    /var/log/lastlog
    /var/log/wtmp
    /var/log/tuned/tuned.log
    /var/log/audit/audit.log
    /var/log/boot.log
    /var/log/vmware-vmsvc.log
    /var/log/vmware-vgauthsvc.log.0
    /var/log/yum.log
    /var/log/dmesg.old
    /var/log/vmware-network.4.log
    /var/log/vmware-network.3.log
    /var/log/boot.log-20191210
    /var/log/maillog-20191212
    /var/log/cron
    /var/log/messages-20191215
    /var/log/spooler
    /var/log/vmware-network.1.log
    /var/log/boot.log-20191212
    /var/log/boot.log-20191213
    /var/log/vmware-network.5.log
    /var/log/nginx
    /var/log/nginx/access.log
    /var/log/nginx/error.log
    /var/log/nginx/error.log-20191214.gz
    /var/log/vmware-network.8.log
    /var/log/vmware-network.log
    /var/log/cron-20191212
    /var/log/secure-20191212
    /var/log/cron-20191215
    /var/log/messages
    /var/log/vmware-network.7.log
    /var/log/vmware-network.9.log
    /var/log/btmp
    /var/log/messages-20191212
    /var/log/boot.log-20191215
    /var/log/maillog-20191215
    /var/log/maillog
    /var/log/secure-20191215
    /var/log/secure
    /var/log/spooler-20191215
    /var/log/vmware-network.2.log
    /var/log/boot.log-20191214
    /var/log/dmesg
    /var/log/boot.log-20191211
    /var/log/vmware-network.6.log

    找距离当前时间之前正好7天的数据

    注意只精确到天

    [root@centos71 ~]# find   /var/log    -mtime  7  
    /var/log/boot.log-20191209
    [root@centos71 ~]# ll   /var/log/boot.log-20191209
    -rw------- 1 root root 23606 Dec  9 03:43 /var/log/boot.log-20191209
    [root@centos71 ~]# date
    Mon Dec 16 12:17:30 CST 2019

    find命令实现批量处理数据

    (一)find查找数据&&批量删除



    步骤一:将要处理数据找出来
    步骤二:将数据批量删除

    方法一:find命令参数及动作

    [root@centos71 ~]# ls  /test
    mailx.conf        mantisbt_format_analyzer_libreport.conf     mariadb-x86_64.conf
    mailx_event.conf  mantisbt_format.conf                        mke2fs.conf
    man_db.conf       mantisbt_formatdup_analyzer_libreport.conf
    mantisbt.conf     mantisbt_formatdup.conf
    [root@centos71 ~]# ls  /test2
    mailx.conf        mantisbt_format_analyzer_libreport.conf     mariadb-x86_64.conf
    mailx_event.conf  mantisbt_format.conf                        mke2fs.conf
    man_db.conf       mantisbt_formatdup_analyzer_libreport.conf
    mantisbt.conf     mantisbt_formatdup.conf
    [root@centos71 ~]# ls  /test3
    mailx.conf        mantisbt_format_analyzer_libreport.conf     mariadb-x86_64.conf
    mailx_event.conf  mantisbt_format.conf                        mke2fs.conf
    man_db.conf       mantisbt_formatdup_analyzer_libreport.conf
    mantisbt.conf     mantisbt_formatdup.conf
    [root@centos71 ~]# mkdir  /test4
    [root@centos71 ~]# cp  /test/*  /test4
    [root@centos71 ~]# ls  /test4
    mailx.conf        mantisbt_format_analyzer_libreport.conf     mariadb-x86_64.conf
    mailx_event.conf  mantisbt_format.conf                        mke2fs.conf
    man_db.conf       mantisbt_formatdup_analyzer_libreport.conf
    mantisbt.conf     mantisbt_formatdup.conf
     
     
     

    找到所有以m开头的数据
    [root@centos71 ~]#  find   /test    -type  f   -name   "m*"
    /test/mailx.conf
    /test/mailx_event.conf
    /test/man_db.conf
    /test/mantisbt.conf
    /test/mantisbt_format_analyzer_libreport.conf
    /test/mantisbt_format.conf
    /test/mantisbt_formatdup_analyzer_libreport.conf
    /test/mantisbt_formatdup.conf
    /test/mariadb-x86_64.conf
    /test/mke2fs.conf
     

    将m开头的数据全部删除

    注意不要轻易删除目录,所以得指定文件类型

    [root@centos71 ~]#  find   /test    -type  f   -name   "m*"  -delete 
    [root@centos71 ~]# ls  /test
    [root@centos71 ~]#  find   /test    -type  f   -name   "m*"  

    方法二:管道+xargs命令进行处理

    直接使用rm无法删除

    xargs起到了过渡作用,是中介,识别前面的字符信息,作为管道后面命令的参数

    注意对象实际上也是参数,正就像目录也是文件

    [root@centos71 ~]#  find   /test2    -type  f   -name   "m*"  
    /test2/mailx.conf
    /test2/mailx_event.conf
    /test2/man_db.conf
    /test2/mantisbt.conf
    /test2/mantisbt_format_analyzer_libreport.conf
    /test2/mantisbt_format.conf
    /test2/mantisbt_formatdup_analyzer_libreport.conf
    /test2/mantisbt_formatdup.conf
    /test2/mariadb-x86_64.conf
    /test2/mke2fs.conf
    [root@centos71 ~]#  find   /test2    -type  f   -name   "m*"   |  xargs  rm
    [root@centos71 ~]#  find   /test2    -type  f   -name   "m*"  
    [root@centos71 ~]# ls /test2
    [root@centos71 ~]# echo  {01..10}  |  xargs  -n2
    01 02
    03 04
    05 06
    07 08
    09 10
    [root@centos71 ~]# echo  {01..10}  |  xargs  -n3
    01 02 03
    04 05 06
    07 08 09
    10
    [root@centos71 ~]# echo  {01..10}  |  xargs  -n4
    01 02 03 04
    05 06 07 08
    09 10
    [root@centos71 ~]# echo  {01..10}  
    01 02 03 04 05 06 07 08 09 10

    方法三:反引号进行处理

    很好理解,反引号就像中学数学里面的四则运算里面的括号

    提高了运算的优先级

    [root@centos71 ~]# bc
    bc 1.06.95
    Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
    This is free software with ABSOLUTELY NO WARRANTY.
    For details type `warranty'. 
    2*(3+6)
    18
    ^C
    (interrupt) Exiting bc.
    [root@centos71 ~]#  find   /test3     -type  f   -name   "m*"  
    /test3/mailx_event.conf
    /test3/mantisbt.conf
    /test3/mantisbt_format.conf
    /test3/mantisbt_format_analyzer_libreport.conf
    /test3/mantisbt_formatdup.conf
    /test3/mantisbt_formatdup_analyzer_libreport.conf
    /test3/mailx.conf
    /test3/mariadb-x86_64.conf
    /test3/man_db.conf
    /test3/mke2fs.conf
    [root@centos71 ~]# rm -f   ` find   /test3     -type  f   -name   "m*"`
    [root@centos71 ~]#  find   /test3     -type  f   -name   "m*"  
    [root@centos71 ~]# ls /test3

    方法四: find参数 -exec

    钓上一条鱼就放到框里面,exec相当于钓鱼,{  }相当于放鱼的桶

    ;作用是隔开命令

     注意xarg和exec的区别,前者有管道,后者有;

    [root@centos71 ~]#  find   /test4     -type  f   -name   "m*"  
    /test4/mailx.conf
    /test4/mailx_event.conf
    /test4/man_db.conf
    /test4/mantisbt.conf
    /test4/mantisbt_format_analyzer_libreport.conf
    /test4/mantisbt_format.conf
    /test4/mantisbt_formatdup_analyzer_libreport.conf
    /test4/mantisbt_formatdup.conf
    /test4/mariadb-x86_64.conf
    /test4/mke2fs.conf
    [root@centos71 ~]#  find   /test4     -type  f   -name   "m*"  -exec   rm   {}  ;
    [root@centos71 ~]#  find   /test4     -type  f   -name   "m*"  
    [root@centos71 ~]# ls  /test4

    (二)find查找数据&&批量复制

    [root@centos71 ~]#  find   /etc/  -name   "m*.conf"
    /etc/mailx_event.conf
    /etc/mantisbt.conf
    /etc/mantisbt_format.conf
    /etc/mantisbt_format_analyzer_libreport.conf
    /etc/mantisbt_formatdup.conf
    /etc/mantisbt_formatdup_analyzer_libreport.conf
    /etc/mailx.conf
    /etc/mariadb-x86_64.conf
    /etc/man_db.conf
    /etc/mke2fs.conf
    [root@centos71 ~]# ls  /test2
    [root@centos71 ~]# find   /etc/  -name   "m*.conf"  |  xargs  -i  cp  {}  /test2
    [root@centos71 ~]# ls  /test2
    mailx.conf        mantisbt_format_analyzer_libreport.conf     mariadb-x86_64.conf
    mailx_event.conf  mantisbt_format.conf                        mke2fs.conf
    man_db.conf       mantisbt_formatdup_analyzer_libreport.conf
    mantisbt.conf     mantisbt_formatdup.conf

    (三)find查找数据&&批量移动

    注意移动和复制方法相同,换命令即可

    mv不需要添加参数

    方法一

    [root@centos71 ~]# ls  /test2
    mailx.conf        mantisbt_format_analyzer_libreport.conf     mariadb-x86_64.conf
    mailx_event.conf  mantisbt_format.conf                        mke2fs.conf
    man_db.conf       mantisbt_formatdup_analyzer_libreport.conf
    mantisbt.conf     mantisbt_formatdup.conf
    [root@centos71 ~]# ls  /test3
    [root@centos71 ~]# find  /test2  -type  f  -name  "m*conf"  
    /test2/mailx_event.conf
    /test2/mantisbt.conf
    /test2/mantisbt_format.conf
    /test2/mantisbt_format_analyzer_libreport.conf
    /test2/mantisbt_formatdup.conf
    /test2/mantisbt_formatdup_analyzer_libreport.conf
    /test2/mailx.conf
    /test2/mariadb-x86_64.conf
    /test2/man_db.conf
    /test2/mke2fs.conf
    [root@centos71 ~]# find  /test2  -type  f  -name  "m*conf"  |  xargs   -i  mv  -t  {}  /test3
    mv: target ‘/test2/mailx_event.conf’ is not a directory
    mv: target ‘/test2/mantisbt.conf’ is not a directory
    mv: target ‘/test2/mantisbt_format.conf’ is not a directory
    mv: target ‘/test2/mantisbt_format_analyzer_libreport.conf’ is not a directory
    mv: target ‘/test2/mantisbt_formatdup.conf’ is not a directory
    mv: target ‘/test2/mantisbt_formatdup_analyzer_libreport.conf’ is not a directory
    mv: target ‘/test2/mailx.conf’ is not a directory
    mv: target ‘/test2/mariadb-x86_64.conf’ is not a directory
    mv: target ‘/test2/man_db.conf’ is not a directory
    mv: target ‘/test2/mke2fs.conf’ is not a directory
    [root@centos71 ~]# find  /test2  -type  f  -name  "m*conf"  |  xargs   -i  mv    {}  /test3
    [root@centos71 ~]# ls  /test3
    mailx.conf        mantisbt_format_analyzer_libreport.conf     mariadb-x86_64.conf
    mailx_event.conf  mantisbt_format.conf                        mke2fs.conf
    man_db.conf       mantisbt_formatdup_analyzer_libreport.conf
    mantisbt.conf     mantisbt_formatdup.conf

    方法二

    [root@centos71 ~]# ls  /test3
    mailx.conf        mantisbt_format_analyzer_libreport.conf     mariadb-x86_64.conf
    mailx_event.conf  mantisbt_format.conf                        mke2fs.conf
    man_db.conf       mantisbt_formatdup_analyzer_libreport.conf
    mantisbt.conf     mantisbt_formatdup.conf
    [root@centos71 ~]# ls  /test2
    [root@centos71 ~]# find  /test3  -type  f  -name  "m*conf"  |  xargs   -i  mv  -t  /test2
    mv: missing file operand
    Try 'mv --help' for more information.
    mv: missing file operand
    Try 'mv --help' for more information.
    mv: missing file operand
    Try 'mv --help' for more information.
    mv: missing file operand
    Try 'mv --help' for more information.
    mv: missing file operand
    Try 'mv --help' for more information.
    mv: missing file operand
    Try 'mv --help' for more information.
    mv: missing file operand
    Try 'mv --help' for more information.
    mv: missing file operand
    Try 'mv --help' for more information.
    mv: missing file operand
    Try 'mv --help' for more information.
    mv: missing file operand
    Try 'mv --help' for more information.
    [root@centos71 ~]# find  /test3  -type  f  -name  "m*conf"  |  xargs    mv  -t  /test2
    [root@centos71 ~]# ls  /test2
    mailx.conf        mantisbt_format_analyzer_libreport.conf     mariadb-x86_64.conf
    mailx_event.conf  mantisbt_format.conf                        mke2fs.conf
    man_db.conf       mantisbt_formatdup_analyzer_libreport.conf
    mantisbt.conf     mantisbt_formatdup.conf
    [root@centos71 ~]# ls  /test3

    方法三

    [root@centos71 ~]# ls  /test2
    mailx.conf        mantisbt_format_analyzer_libreport.conf     mariadb-x86_64.conf
    mailx_event.conf  mantisbt_format.conf                        mke2fs.conf
    man_db.conf       mantisbt_formatdup_analyzer_libreport.conf
    mantisbt.conf     mantisbt_formatdup.conf
    [root@centos71 ~]# ls  /test3
    [root@centos71 ~]# mv  `find  /test2  -type  f  -name  "m*conf"`  /test3
    [root@centos71 ~]# ls  /test3
    mailx.conf        mantisbt_format_analyzer_libreport.conf     mariadb-x86_64.conf
    mailx_event.conf  mantisbt_format.conf                        mke2fs.conf
    man_db.conf       mantisbt_formatdup_analyzer_libreport.conf
    mantisbt.conf     mantisbt_formatdup.conf
    [root@centos71 ~]# ls  /test2
  • 相关阅读:
    点双连通分量模板
    Caocao's Bridges HDU
    边双连通分量模板
    夏令营501-511NOIP训练18——高三楼
    夏令营501-511NOIP训练17——蛇形矩阵
    夏令营501-511NOIP训练16——数字转换
    模板——最小费用最大流
    洛谷P1792——[国家集训队]种树
    XJOI夏令营501-511NOIP训练14——好朋友
    codeforces 1178E-Archaeology
  • 原文地址:https://www.cnblogs.com/wang618/p/12048407.html
Copyright © 2011-2022 走看看