• 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
  • 相关阅读:
    python模块—socket
    mac os系统的快捷键
    教你如何将UIImageView视图中的图片变成圆角
    关于ASP.NET MVC
    iOS 日期格式的转换
    将App通过XCode上传到AppStore 出现这个错误“An error occurred uploading to the iTunes Store”的解决方法
    关于MAC OS下面两个软件的功能改进——Dictionary和Fit 输入法
    分享一下上个星期的香港行程
    【博客园IT新闻】博客园IT新闻 iPhone 客户端发布
    解决Entity Framework Code First 的问题——Model compatibility cannot be checked because the database does not contain model metadata
  • 原文地址:https://www.cnblogs.com/wang618/p/12048407.html
Copyright © 2020-2023  润新知