zoukankan      html  css  js  c++  java
  • Linux基础命令(三)

    1、压缩工具之gzip

    Usage: gzip [OPTION]... [FILE]...
    常用的OPTION:
    -d:解压缩,解压完成后会删除原文件

    [root@localhost ~]# ls
    a abc anaconda-ks.cfg b
    [root@localhost ~]# gzip abc
    [root@localhost ~]# ls
    a abc.gz anaconda-ks.cfg b
    [root@localhost ~]# gzip -d abc.gz 
    [root@localhost ~]# ls
    a abc anaconda-ks.cfg b
    

    2、压缩工具之bzip2

    Usage: bzip2 [OPTION]... [FILE]...
    常用的OPTION:
    -k:压缩时保留原文件
    -d:解压缩,解压完成后会删除原文件

    [root@localhost ~]# ls
    a abc anaconda-ks.cfg b
    [root@localhost ~]# bzip2 -k abc
    [root@localhost ~]# ls
    a abc abc.bz2 anaconda-ks.cfg b
    [root@localhost ~]# rm -f abc
    [root@localhost ~]# bzip2 -d abc.bz2 
    [root@localhost ~]# ls
    a abc anaconda-ks.cfg b
    

    3、压缩工具之xz

    Usage: xz [OPTION]... [FILE]...
    常用的OPTION:
    -k:压缩时保留原文件
    -d:解压缩,解压完成后会删除原文件

    [root@localhost ~]# ls
    a abc anaconda-ks.cfg b
    [root@localhost ~]# xz -k abc
    [root@localhost ~]# ls
    a abc abc.xz anaconda-ks.cfg b
    [root@localhost ~]# rm -f abc
    [root@localhost ~]# xz -d abc.xz 
    [root@localhost ~]# ls
    a abc anaconda-ks.cfg b
    

    4、压缩工具之zip

    zip压缩文件的两种方式:
    zip filename.zip file1 file2 ...
    zip filename.zip DIR/*

    zip压缩包要使用unzip工具来解压

    [root@localhost ~]# ls
    a abc anaconda-ks.cfg b
    [root@localhost ~]# zip a.zip abc
      adding: abc (stored 0%)
    [root@localhost ~]# ls
    a abc anaconda-ks.cfg a.zip b
    [root@localhost ~]# mkdir tmp
    [root@localhost ~]# ls
    a abc anaconda-ks.cfg a.zip b tmp
    [root@localhost ~]# mv a.zip tmp
    [root@localhost ~]# ls
    a abc anaconda-ks.cfg b tmp
    [root@localhost ~]# cd tmp
    [root@localhost tmp]# ls
    a.zip
    [root@localhost tmp]# unzip a.zip 
    Archive: a.zip
     extracting: abc                     
    [root@localhost tmp]# ls
    abc a.zip
    

    5、归档工具tar

    Usage: tar [OPTION...] [FILE]...
    常用的OPTION:
    -c:创建归档文件
    -f file.tar:指定要操作的归档文件
    -x:还原归档
    -v:显示归档过程
    -p:归档时保留权限信息。只有管理员才有权限用此选项
    -C:指定还原归档或解压时的目标目录
    -tf:不展开归档,直接查看归档了哪些文件
    常用的组合项:
    -zcf file.tar.gz:归档并调用gzip进行压缩
    -jcf file.tar.bz2:归档并调用bzip2进行压缩
    -Jcf file.tar.xz:归档并调用xz进行压缩

    xf file.tar.gz|file.tar.bz2|file.tar.xz:还原归档并自动根据压缩方式调用相应的工具解压

    [root@localhost ~]# ls
    a abc anaconda-ks.cfg b tmp
    [root@localhost ~]# tar -zcf a.tar.gz abc
    [root@localhost ~]# ls
    a abc anaconda-ks.cfg a.tar.gz b tmp
    [root@localhost ~]# tar -tf a.tar.gz 
    abc
    [root@localhost ~]# tar xf a.tar.gz -C /opt/
    [root@localhost ~]# ls /opt/
    abc
    
    [root@localhost ~]# ls
    a abc anaconda-ks.cfg b tmp
    [root@localhost ~]# tar jcf b.tar.bz2 abc
    [root@localhost ~]# ls
    a abc anaconda-ks.cfg b b.tar.bz2 tmp
    [root@localhost ~]# tar xf b.tar.bz2 -C /tmp/
    [root@localhost ~]# ls /tmp/
    abc
    ks-script-o4hYXc
    systemd-private-1f945c612a0c433398c9cec50bc65547-chronyd.service-SMnOnY
    systemd-private-1f945c612a0c433398c9cec50bc65547-vgauthd.service-CxeeBc
    systemd-private-1f945c612a0c433398c9cec50bc65547-vmtoolsd.service-zywMQq
    yum.log
    
    [root@localhost ~]# ls
    a abc anaconda-ks.cfg b tmp
    [root@localhost ~]# tar Jcf c.tar.xz abc
    [root@localhost ~]# ls
    a abc anaconda-ks.cfg b c.tar.xz tmp
    [root@localhost ~]# tar xf c.tar.xz -C /tmp/
    [root@localhost ~]# ls /tmp/
    abc
    ks-script-o4hYXc
    systemd-private-1f945c612a0c433398c9cec50bc65547-chronyd.service-SMnOnY
    systemd-private-1f945c612a0c433398c9cec50bc65547-vgauthd.service-CxeeBc
    systemd-private-1f945c612a0c433398c9cec50bc65547-vmtoolsd.service-zywMQq
    yum.log
    

    6、文本排序命令sort

    Usage: sort [OPTION]... [FILE]...
    常用的OPTION:
    -n:以数值大小进行排序
    -r:逆序排序
    -t:字段分隔符
    -k:以哪个字段为关键字进行排序
    -u:去重,排序后相同的行只显示一次
    -f:排序时忽略字符大小写

    Usage: sort [OPTION]... [FILE]...
    
    常用的OPTION:
     -n:以数值大小进行排序
     -r:逆序排序
     -t:字段分隔符
     -k:以哪个字段为关键字进行排序
     -u:去重,排序后相同的行只显示一次
     -f:排序时忽略字符大小写
    

    7、文本去重命令uniq

    Usage: uniq [OPTION]... [INPUT [OUTPUT]]
    常用的OPTION:
    -c:显示文件中行重复的次数
    -d:只显示重复的行
    -u:只显示未重复的行

    [root@localhost ~]# cat > a <<EOF
    > 1
    > 1
    > 6
    > 5
    > 8
    > 3
    > 3
    > 9
    > 5
    > 4
    > 7
    > EOF
    [root@localhost ~]# cat a
    1
    1
    6
    5
    8
    3
    3
    9
    5
    4
    7
    [root@localhost ~]# sort -n a | uniq -c
          2 1
          2 3
          1 4
          2 5
          1 6
          1 7
          1 8
          1 9
    [root@localhost ~]# sort -n a | uniq -d
    1
    3
    5
    [root@localhost ~]# sort -n a | uniq -u
    4
    6
    7
    8
    9
    

    8、基础命令之cut

    Usage: cut OPTION... [FILE]...
    常用的OPTION:
    -d:指定字段分隔符,默认是空格
    -f:指定要显示的字段
    -f 1,3:显示1和3字段
    -f 1-3:显示1到3字段

    [root@localhost ~]# ls
    a abc anaconda-ks.cfg b c.tar.xz passwd tmp
    [root@localhost ~]# head passwd 
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    [root@localhost ~]# cut -d: -f1,3 passwd 
    root:0
    bin:1
    daemon:2
    adm:3
    lp:4
    sync:5
    shutdown:6
    halt:7
    mail:8
    operator:11
    games:12
    ftp:14
    nobody:99
    systemd-network:192
    dbus:81
    polkitd:999
    postfix:89
    chrony:998
    sshd:74
    [root@localhost ~]# cut -d: -f1-3 passwd 
    root:x:0
    bin:x:1
    daemon:x:2
    adm:x:3
    lp:x:4
    sync:x:5
    shutdown:x:6
    halt:x:7
    mail:x:8
    operator:x:11
    games:x:12
    ftp:x:14
    nobody:x:99
    systemd-network:x:192
    dbus:x:81
    polkitd:x:999
    postfix:x:89
    chrony:x:998
    sshd:x:74
    

    9、高级命令之awk

    [root@localhost ~]# df -h
    文件系统 容量 已用 可用 已用% 挂载点
    /dev/mapper/rhel-root 17G 951M 17G 6% /
    devtmpfs 901M 0 901M 0% /dev
    tmpfs 912M 0 912M 0% /dev/shm
    tmpfs 912M 8.6M 904M 1% /run
    tmpfs 912M 0 912M 0% /sys/fs/cgroup
    /dev/sda1 1014M 143M 872M 15% /boot
    tmpfs 183M 0 183M 0% /run/user/0
    [root@localhost ~]# df -h|awk '{print $2}'
    容量
    17G
    901M
    912M
    912M
    912M
    1014M
    183M
    
    [root@localhost ~]# ls
    a abc anaconda-ks.cfg b c.tar.xz passwd tmp
    [root@localhost ~]# ls passwd 
    passwd
    [root@localhost ~]# cat passwd 
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    games:x:12:100:games:/usr/games:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    nobody:x:99:99:Nobody:/:/sbin/nologin
    systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
    dbus:x:81:81:System message bus:/:/sbin/nologin
    polkitd:x:999:997:User for polkitd:/:/sbin/nologin
    postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    chrony:x:998:996::/var/lib/chrony:/sbin/nologin
    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    [root@localhost ~]# awk 'BEGIN{FS=":";OFS="-"} {print $1,$3}' passwd 
    root-0
    bin-1
    daemon-2
    adm-3
    lp-4
    sync-5
    shutdown-6
    halt-7
    mail-8
    operator-11
    games-12
    ftp-14
    nobody-99
    systemd-network-192
    dbus-81
    polkitd-999
    postfix-89
    chrony-998
    sshd-74
    

    10、高级命令之sed

    [root@localhost ~]# ls
    123 a abc anaconda-ks.cfg b c.tar.xz jjyy passwd tmp
    [root@localhost ~]# cat a
    abc
    123
    dhhd
    djkd
    skd
    [root@localhost ~]# sed -i 's/abc/cba/g' a
    [root@localhost ~]# cat a
    cba
    123
    dhhd
    djkd
    skd
    
    [root@localhost ~]# cat > a <<EOF
    > SHU
    > shj li kdk dkjk
    > djjdj djf li kdjf
    > kdjk kjdli li kdj li
    > kdj li d li dkj li
    > EOF
    [root@localhost ~]# cat a
    SHU
    shj li kdk dkjk
    djjdj djf li kdjf
    kdjk kjdli li kdj li
    kdj li d li dkj li
    [root@localhost ~]# sed -i 's/li/ping/2' a 
    [root@localhost ~]# cat a
    SHU
    shj li kdk dkjk
    djjdj djf li kdjf
    kdjk kjdli ping kdj li
    kdj li d ping dkj li
    

    11、文本过滤命令grep

    grep命令根据正则表达式搜索文本,并将符合正则表达式的文本显示出来。
    默认使用基本正则表达式来过滤文本。
    Usage: grep [OPTION]... PATTERN [FILE]...
    常用的OPTION:
    -i:忽略大小写

    [root@localhost ~]# ls
    123 a abc anaconda-ks.cfg b c.tar.xz jjyy passwd tmp
    [root@localhost ~]# cat a
    SHU
    shj li kdk dkjk
    djjdj djf li kdjf
    kdjk kjdli ping kdj li
    kdj li d ping dkj li
    [root@localhost ~]# grep -i 's' a
    SHU
    shj li kdk dkjk
    

    --color:匹配到的内容高亮显示
    -v:显示没有被正则表达式匹配到的内容

    [root@localhost ~]# grep -v 'root' passwd 
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    games:x:12:100:games:/usr/games:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    nobody:x:99:99:Nobody:/:/sbin/nologin
    systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
    dbus:x:81:81:System message bus:/:/sbin/nologin
    polkitd:x:999:997:User for polkitd:/:/sbin/nologin
    postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    chrony:x:998:996::/var/lib/chrony:/sbin/nologin
    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    

    -o:只显示被正则表达式匹配到的内容

    [root@localhost ~]# ls
    123 a abc anaconda-ks.cfg b c.tar.xz jjyy passwd tmp
    [root@localhost ~]# cat a
    SHU
    shj li kdk dkjk
    djjdj djf li kdjf
    kdjk kjdli ping kdj li
    kdj li d ping dkj li
    [root@localhost ~]# grep -i 's' a
    SHU
    shj li kdk dkjk
    [root@localhost ~]# grep -io 's' a
    S
    s
    

    -E:使用扩展正则表达式

    [root@localhost ~]# grep -E 'bash|nologin' passwd 
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    games:x:12:100:games:/usr/games:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    nobody:x:99:99:Nobody:/:/sbin/nologin
    systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
    dbus:x:81:81:System message bus:/:/sbin/nologin
    polkitd:x:999:997:User for polkitd:/:/sbin/nologin
    postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    chrony:x:998:996::/var/lib/chrony:/sbin/nologin
    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    

    -q:静默模式,不输出任何信息

    [root@localhost ~]# grep -Eq 'bash|nologin' passwd 
    [root@localhost ~]# echo $?
    0
    

    -A #:此处的#必须是数字。被正则匹配到的内容以及其后面#行的内容都显示出来

    -B #:此处的#必须是数字。被正则匹配到的内容以及其前面#行的内容都显示出来

    -C #:此处的#必须是数字。被正则匹配到的内容及其前后各#行的内容都显示出来

    12、文件查找命令find

    语法:find [OPTION]... 查找路径 查找标准 查找到以后的处理动作
    查找路径:默认为当前目录
    查找标准:
    -name filename:对文件名精确匹配,支持通配符

    [root@localhost ~]# find / -name passwd 
    /sys/fs/selinux/class/passwd
    /sys/fs/selinux/class/passwd/perms/passwd
    /etc/passwd
    /etc/pam.d/passwd
    /root/passwd
    /usr/bin/passwd
    

    -iname filename:文件名匹配时不区分大小写
    -regex pattern:基于正则表达式进行文件名匹配
    -user:查找某用户的所有文件
    -group:查找某组的所有文件
    -uid:根据UID进行查找
    -gid:根据GID进行查找
    -nouser:查找没有拥有者的文件

    [root@localhost ~]# useradd tom
    [root@localhost ~]# ll /home/
    总用量 0
    drwx------. 2 tom tom 62 9月 12 21:05 tom
    [root@localhost ~]# userdel tom
    [root@localhost ~]# ll /home/
    总用量 0
    drwx------. 2 1000 1000 62 9月 12 21:05 tom
    [root@localhost ~]# find / -nouser
    find: ‘/proc/2283/task/2283/fd/6’: 没有那个文件或目录
    find: ‘/proc/2283/task/2283/fdinfo/6’: 没有那个文件或目录
    find: ‘/proc/2283/fd/6’: 没有那个文件或目录
    find: ‘/proc/2283/fdinfo/6’: 没有那个文件或目录
    /var/spool/mail/tom
    /home/tom
    /home/tom/.bash_logout
    /home/tom/.bash_profile
    /home/tom/.bashrc
    

    -nogroup:查找没有属组的文件

    [root@localhost ~]# find / -nogroup
    find: ‘/proc/2351/task/2351/fd/6’: 没有那个文件或目录
    find: ‘/proc/2351/task/2351/fdinfo/6’: 没有那个文件或目录
    find: ‘/proc/2351/fd/6’: 没有那个文件或目录
    find: ‘/proc/2351/fdinfo/6’: 没有那个文件或目录
    /home/tom
    /home/tom/.bash_logout
    /home/tom/.bash_profile
    /home/tom/.bashrc
    

    -type:根据文件类型进行查找

    [root@localhost ~]# ls
    123 a AB abc Acb anaconda-ks.cfg b c.tar.xz jjyy passwd tmp
    [root@localhost ~]# find -type d
    .
    ./b
    ./tmp
    

    13、文件查找命令find(续一)

    语法:find [OPTION]... 查找路径 查找标准 查找到以后的处理动作
    查找标准(续):
    -size:根据文件大小进行查找。如1k、1M、+10k、+10M、-1k、-10M
    +表示大于,-表示小于

    [root@localhost ~]# ll -h
    总用量 16K
    -rw-r--r--. 1 root root 0 9月 12 19:42 123
    -rw-r--r--. 1 root root 82 9月 12 20:04 a
    -rw-r--r--. 1 root root 0 9月 12 21:00 AB
    -rw-r--r--. 1 root root 0 9月 12 19:42 abc
    -rw-r--r--. 1 root root 0 9月 12 21:00 Acb
    -rw-------. 1 root root 1.5K 9月 6 19:48 anaconda-ks.cfg
    drwxr-xr-x. 2 root root 50 9月 12 19:34 b
    -rw-r--r--. 1 root root 164 9月 12 16:03 c.tar.xz
    -rw-r--r--. 1 root root 0 9月 12 19:42 jjyy
    -rw-r--r--. 1 root root 846 9月 12 16:33 passwd
    drwxr-xr-x. 2 root root 6 9月 12 15:49 tmp
    [root@localhost ~]# find -size +1k
    ./anaconda-ks.cfg
    ./.bash_history
    [root@localhost ~]# find -size -1k
    ./b/1
    ./b/123
    ./b/abc
    ./b/hello
    ./abc
    ./123
    ./jjyy
    ./AB
    ./Acb
    

    -mtime:根据修改时间查找
    +5:表示查找5天以前修改的文件
    -5:表示查找5天以内修改的文件

    [root@localhost ~]# ls
    123 a AB abc Acb anaconda-ks.cfg b c.tar.xz jjyy passwd tmp
    [root@localhost ~]# find -mtime -5
    .
    ./.bash_history
    ./b
    ./b/1
    ./b/123
    ./b/hello
    ./tmp
    ./c.tar.xz
    ./passwd
    ./a
    ./abc
    ./123
    ./jjyy
    ./AB
    ./Acb
    [root@localhost ~]# find -mtime +5
    ./.bash_logout
    ./.bash_profile
    ./.bashrc
    ./.cshrc
    ./.tcshrc
    ./anaconda-ks.cfg
    

    -atime:根据访问时间查找
    -ctime:根据改变时间查找
    -perm mode:根据权限精确查找
    -perm –mode:文件权限能完全包含此mode时才符合条件
    -perm /mode:9位权限中有任何一位权限匹配都视为符合查找条件

    14、文件查找命令find(续二)

    语法:find [OPTION]... 查找路径 查找标准 查找到以后的处理动作
    多条件组合使用:
    -a
    -o
    -not
    !
    例如:
    !A –a !B 与 !(A –o B) 相等
    !A –o !B 与 !(A –a B) 相等

    [root@localhost ~]# ll
    总用量 16
    -rw-r--r--. 1 root root 0 9月 12 19:42 123
    -rw-r--r--. 1 root root 82 9月 12 20:04 a
    -rw-r--r--. 1 root root 0 9月 12 21:00 AB
    -rw-r--r--. 1 root root 0 9月 12 19:42 abc
    -rw-r--r--. 1 root root 0 9月 12 21:00 Acb
    -rw-------. 1 root root 1451 9月 6 19:48 anaconda-ks.cfg
    drwxr-xr-x. 2 root root 50 9月 12 19:34 b
    -rw-r--r--. 1 root root 164 9月 12 16:03 c.tar.xz
    -rw-r--r--. 1 root root 0 9月 12 19:42 jjyy
    -rw-r--r--. 1 root root 846 9月 12 16:33 passwd
    drwxr-xr-x. 2 root root 6 9月 12 15:49 tmp
    [root@localhost ~]# find -mtime -5 -a -name a
    ./a
    

    15、文件查找命令find(续三)

    语法:find [OPTION]... 查找路径 查找标准 查找到以后的处理动作
    处理动作:默认动作是显示到屏幕上
    -print:打印到屏幕上
    -ls:类似ls –l的形式显示每一个文件的详细信息
    -delete:删除查找到的文件

    [root@localhost ~]# ls
    123 a AB abc Acb anaconda-ks.cfg b c.tar.xz jjyy passwd tmp
    [root@localhost ~]# find -name 123
    ./b/123
    ./123
    [root@localhost ~]# find -name 123 -delete
    [root@localhost ~]# ls
    a AB abc Acb anaconda-ks.cfg b c.tar.xz jjyy passwd tmp
    

    -fls /path/to/somefile:将查找到的所有文件的长格式信息保存至指定文件中

    [root@localhost ~]# find -type d -fls a.txt
    [root@localhost ~]# ls
    a AB abc Acb anaconda-ks.cfg a.txt b c.tar.xz jjyy passwd tmp
    [root@localhost ~]# cat a.txt 
    33574977 0 dr-xr-x--- 4 root root 251 9月 12 21:40 .
    50840618 0 drwxr-xr-x 2 root root 39 9月 12 21:37 ./b
    50840651 0 drwxr-xr-x 2 root root 6 9月 12 15:49 ./tmp
    

    -ok COMMAND {} ;:对查找到的所有文件执行COMMAND,每次操作都需要用户确认
    -exec COMMAND {} ;:对查找到的所有文件执行COMMAND,操作不需要确认

    [root@localhost ~]# ls
    a AB Acb anaconda-ks.cfg a.txt b c.tar.xz passwd tmp
    [root@localhost ~]# find -type d
    .
    ./b
    ./tmp
    [root@localhost ~]# find -type d -exec rm -rf {} ;
    rm: refusing to remove "." or ".." directory: skipping "."
    find: ‘./b’: 没有那个文件或目录
    find: ‘./tmp’: 没有那个文件或目录
    [root@localhost ~]# ls
    a AB Acb anaconda-ks.cfg a.txt c.tar.xz passwd
    

    注意:find传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令,而有些命令不能接受过多的参数,此时命令执行可能会失败,而xargs可规避此问题。
    xargs:通过管道将查找到的内容给xargs处理,xargs后面直接跟命令即可

    [root@localhost ~]# ls
    a AB Acb anaconda-ks.cfg a.txt c.tar.xz kdj passwd sj
    [root@localhost ~]# find -type d
    .
    ./sj
    ./kdj
    [root@localhost ~]# find -type d |xargs rm -rf
    rm: refusing to remove "." or ".." directory: skipping "."
    [root@localhost ~]# ls
    a AB Acb anaconda-ks.cfg a.txt c.tar.xz passwd
    
    [root@localhost ~]# ls
    a AB Acb anaconda-ks.cfg a.txt c.tar.xz passwd sjnfjd snj
    [root@localhost ~]# find -type d
    .
    ./snj
    ./sjnfjd
    [root@localhost ~]# find -type d|xargs mv -t /opt/
    mv: 无法将"." 移动至"/opt/.": 设备或资源忙
    [root@localhost ~]# ls /opt/
    abc sjnfjd snj
    
  • 相关阅读:
    【必备】史上最全的浏览器 CSS & JS Hack 手册(转)
    iScroll4.2.5中的无法滑动或点击的解决方案(转)
    无障碍网页设计(WCAG2.0)
    大小端
    TCP报文结构
    A*
    shell中uniq与sort -u 两种去重的对别
    login流程
    类模板成员函数
    game 角色相关记录
  • 原文地址:https://www.cnblogs.com/liping0826/p/11527887.html
Copyright © 2011-2022 走看看