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
    
  • 相关阅读:
    linux内核中GNU C和标准C的区别
    linux内核中GNU C和标准C的区别
    Getting start with dbus in systemd (02)
    Getting start with dbus in systemd (01)
    Getting start with dbus in systemd (03)
    物理内存相关的三个数据结构
    数据类型对应字节数(32位,64位 int 占字节数)
    Linux kernel 内存
    共模电感的原理以及使用情况
    [原创]DC-DC输出端加电压会烧毁
  • 原文地址:https://www.cnblogs.com/liping0826/p/11527887.html
Copyright © 2011-2022 走看看