欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux常用命令-文件和目录类

程序员文章站 2022-03-07 22:28:19
...

1.Linux常用命令(二)

1.文件及目录操作相关命令

pwd 显示当前用户目录(Print Working Directory)

[[email protected] network-scripts]# pwd
/etc/sysconfig/network-scripts

cd 目录名 切换/进入目录(Change Directory)

[[email protected] lib64]# cd /usr/lib64/
[[email protected] lib64]# cd ~
[[email protected] ~]# cd -
/usr/lib64

tree 目录名 以树形模式显示目录结构

  • -L 指定遍历目录的最大层数
  • -d 只显示目录信息
[[email protected] ~]# tree -L 1 /
/
├── bin -> usr/bin
├── boot
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var

19 directories, 0 files
[[email protected] ~]# tree -dL 1 /etc/sysconfig/
/etc/sysconfig/
├── cbq
├── console
├── modules
└── network-scripts

4 directories

ls 目录名 显示目录内容(list)

  • -l 以长格式显示目录下信息(显示详细信息)
  • -t 按照文件修改时间对输出结果进行排序(顺序:新->旧)
    默认是按字母顺序排序(顺序:a->z)
  • -r 逆序输出结果
  • -i 显示文件索引结点号(inode)
  • -h 结果以人类可读形式显示
  • -a 显示目录下的所有文件(包含隐藏文件)
  • -d 只显示目录本身信息
[[email protected] ~]# ls -a ~
.  ..  anaconda-ks.cfg  .bash_history  .bash_logout  .bash_profile  .bashrc  .cshrc  .lesshst  .tcshrc
[[email protected] ~]# ls ~
anaconda-ks.cfg
[[email protected] ~]# ls -d ~
/root
[[email protected] ~]# ls -ihl ~
total 16K
33595848 -rw-r--r--. 1 root root   41 May  5 09:55 1.txt
33574978 -rw-------. 1 root root 1.5K Mar 20 09:36 anaconda-ks.cfg
51336048 drw-r-----. 3 root root   34 Apr 25 10:07 aspen
33576607 -rw-r--r--. 1 root root  504 Apr 11 16:51 inittab.bak
33593153 -rw-r--r--. 1 root root   75 May  8 16:31 passwd.txt
[[email protected] ~]# ls -lrt /tmp
total 4
-rw-------. 1 root root   0 Mar 20 09:32 yum.log
-rwx------. 1 root root 836 Mar 20 09:36 ks-script-z8idLP
drwx------. 2 root root   6 Mar 20 09:36 vmware-root_5916-960608111
drwx------. 2 root root   6 Mar 29 15:03 vmware-root_6092-994685407

ls -lrt 在实际工作中常用于查看目录下最近被修改过的文件
mkdir 目录名 创建目录(Make Directory )
mkdir默认一次只能创建一个目录

  • -p 递归创建目录(创建多层目录)
  • -m设置新目录默认对应的权限
    存在-p参数时,创建已存在目录名的目录时,不会提示错误
[[email protected] ~]# mkdir /aspen/a/b/c/d/e/f
mkdir: cannot create directory ‘/aspen/a/b/c/d/e/f’: No such file or directory   #不能创建目录‘/aspen/a/b/c/d/e/f’:没有这样的文件或目录
[[email protected] ~]# mkdir -p /aspen/a/b/c/d/e/f  /data
[[email protected] ~]# tree /aspen/ /data/
/aspen/
└── a
    └── b
        └── c
            └── d
                └── e
                    └── f
/data/
[[email protected] ~]# mkdir -m 640 ~/aspen
[[email protected] ~]# ls -l ~
total 4
-rw-------. 1 root root 1508 Mar 20 09:36 anaconda-ks.cfg
drw-r-----. 2 root root    6 Apr 11 14:21 aspen

touch 文件名 修改文件的时间戳(创建空文件)

[[email protected] ~]# touch /{aspen/a/b/c/d/e/f,data}/han.txt
[[email protected] ~]# tree /aspen/ /data/
/aspen/
└── a
    └── b
        └── c
            └── d
                └── e
                    └── f
                        └── han.txt
/data/
└── han.txt

ln 源文件名 目的文件名 为文件创建硬链接

  • -s 为文件创建软链接
    无法针对目录或跨文件系统创建硬链接
[[email protected] ~]# ln passwd.txt ./passwd.txt.hardlink
[[email protected] ~]# ln -s passwd.txt ./passwd.txt.softlink
[[email protected] ~]# ll -ih ./passwd.txt*
33593153 -rw-r--r--. 2 root root 75 May  8 16:31 ./passwd.txt
33593153 -rw-r--r--. 2 root root 75 May  8 16:31 ./passwd.txt.hardlink
33617916 lrwxrwxrwx. 1 root root 10 May 13 13:58 ./passwd.txt.softlink -> passwd.txt

cp /源目录/源文件名 /目的目录/目的文件名 复制和备份文件(Copy)
cp命令默认无法复制目录

  • -r 递归复制(复制目录及目录里面的内容)
  • -p 复制的时候保持文件及目录属性不变
  • -d 与软连接有关
    cp -a == cp -pdr
  • -t 调换命令源文件和目标文件的参数位置
[[email protected] ~]# cp /etc/ /aspen/   #复制
cp: omitting directory ‘/etc/’   #cp命令:忽略目录/etc
[[email protected] ~]# cp -r /etc/sysconfig/network-scripts/ /aspen/a/b/
[[email protected] ~]# ls /aspen/a/b
c  network-scripts
[[email protected] c]# cp /aspen/a/b/network-scripts/ifcfg-eth0 /aspen/a/b/network-scripts/ifcfg-eth0.bak   #备份
[[email protected] c]# ls /aspen/a/b/network-scripts/ifcfg-eth0*
/aspen/a/b/network-scripts/ifcfg-eth0  /aspen/a/b/network-scripts/ifcfg-eth0.bak  
[[email protected] aspen]# ls ~/aspen/
Aspen.txt  han
[[email protected] aspen]# cp -rt ~/aspen/ /etc/sysconfig/network-scripts/
[[email protected] aspen]# ls
Aspen.txt  han  network-scripts

mv /源目录/源文件名 /目的目录/目的文件名 移动目录或文件,重命名文件(Move)

[[email protected] /]# mv /aspen/ /root/      #移动目录
[[email protected] /]# ls /root/
anaconda-ks.cfg  aspen
[[email protected] /]# mv /aspen/ /root/
[[email protected] /]# ls /root/
anaconda-ks.cfg  aspen
[[email protected] ~]# mv /root/aspen/a/b/network-scripts/ifcfg-eth0 /root/aspen/a/b/network-scripts/ifcfg-eth1      #重命名文件
[[email protected] ~]# ls /root/aspen/a/b/network-scripts/ifcfg-eth*
/root/aspen/a/b/network-scripts/ifcfg-eth0.bak  /root/aspen/a/b/network-scripts/ifcfg-eth1

rm /目的文件 删除目标文件(Remove)
Linux系统下最危险的命令,没有之一

  • -r 递归删除(用于删除目录;如果仅删除文件,不用使用该参数)
  • -f 强制删除
    -r和-f不用轻易的一起用,这样操作风险很大
  • -i 删除命令执行前需要确认(-i与-f参数同时使用时,-i不生效)
[[email protected] ~]# rm -r /root/data/
rm: descend into directory ‘/root/data/’? y
rm: remove regular empty file ‘/root/data/han.txt’? y
rm: remove directory ‘/root/data/’? y
[[email protected] ~]# rm /root/aspen/
rm: cannot remove ‘/root/aspen/’: Is a directory    #rm指令:不能删除‘/root/aspen/’:这是一个目录
[[email protected] ~]# rm -rf /root/aspen/
[[email protected] ~]# ls /root/
anaconda-ks.cfg

rename 原文件名 替换文件名 目标文件 批量重命名文件
经常与find命令搭配使用

[[email protected] han]# rename .sh .shell *.sh
[[email protected] han]# ls
aspen01.shell  aspen02.shell  aspen03.shell  aspen04.shell  aspen05.shell

file 文件名 查看文件的详细文件类型

[[email protected] 10.0.0.201]# file /usr/bin/ls ./bak-2019-05-10-5.tar.gz ./1.txt ./1.txt.sl /dev/urandom /dev/sr0 /dev/sda
/usr/bin/ls:               ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=ceaf496f3aec08afced234f4f36330d3d13a657b, stripped
./bak-2019-05-10-5.tar.gz: gzip compressed data, from Unix, last modified: Fri May 10 21:48:01 2019
./1.txt:                   ASCII text
./1.txt.sl:                symbolic link to `1.txt'
/dev/urandom:              character special
/dev/sr0:                  block special
/dev/sda:                  block special

md5sum /绝对路径/文件名 计算文件的MD5校验和

  • -c根据MD5校验文件,检查文件是否变动

校验命令家族:sha128sum;sha224sum;sha256sum;sha512sum;

[[email protected] 10.0.0.201]# md5sum /backup/10.0.0.201/* >~/1.md5
[[email protected] 10.0.0.201]# cat ~/1.md5 
e1d72ca53f869821e477424f0793cb4a  /backup/10.0.0.201/1.txt
e1d72ca53f869821e477424f0793cb4a  /backup/10.0.0.201/1.txt.hl
e1d72ca53f869821e477424f0793cb4a  /backup/10.0.0.201/1.txt.sl
f4281114ffc2fa1cdb2fd4fa4e58c3ea  /backup/10.0.0.201/bak-2019-05-10-5.tar.gz
68970c01823e13868e30e201a4ea95aa  /backup/10.0.0.201/bak-2019-05-6-1.tar.gz
[[email protected] 10.0.0.201]# md5sum -c ~/1.md5 
/backup/10.0.0.201/1.txt: OK
/backup/10.0.0.201/1.txt.hl: OK
/backup/10.0.0.201/1.txt.sl: OK
/backup/10.0.0.201/bak-2019-05-10-5.tar.gz: OK
/backup/10.0.0.201/bak-2019-05-6-1.tar.gz: OK
[[email protected] 10.0.0.201]# > ./1.txt
[[email protected] 10.0.0.201]# md5sum -c ~/1.md5 
/backup/10.0.0.201/1.txt: FAILED
/backup/10.0.0.201/1.txt.hl: FAILED
/backup/10.0.0.201/1.txt.sl: FAILED
/backup/10.0.0.201/bak-2019-05-10-5.tar.gz: OK
/backup/10.0.0.201/bak-2019-05-6-1.tar.gz: OK
md5sum: WARNING: 3 computed checksums did NOT match
[[email protected] 10.0.0.201]# md5sum ./1.txt
d41d8cd98f00b204e9800998ecf8427e  ./1.txt

2.查看内容文件及内容处理命令

vi/vim 文件名 进入vi/vim文本编辑器
Cent OS 7系统默认没有安装vim文本编辑器

  • -r 根据临时文件恢复文件内容(实际工作中不建议恢复)
    恢复文件后,要使用rm命令删除临时文件
    vim具体使用方法,请参考初识vim文本编辑器
[[email protected] ~]# vim ~/aspen/Aspen.txt
Hello World
Welcome to Linux
[[email protected] ~]# cat ~/aspen/Aspen.txt
Hello World
Welcome to Linux

cat 文件名 显示文件内容

  • -n 显示文件内容和行号
  • -b 显示文件内容和行号(忽略空行)
  • -A 显示文件行内容中隐藏符号
[[email protected] ~]# cat -n /etc/inittab 
     1  # inittab is no longer used when using systemd.
     2  #
     3  # ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
     4  #
     5  # Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
     6  #
     7  # systemd uses 'targets' instead of runlevels. By default, there are two main targets:
......
[[email protected] ~]# cat -b /root/inittab.bak 
     1  # inittab is no longer used when using systemd.

     2  # ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.

     3  # Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target

     4  # systemd uses 'targets' instead of runlevels. By default, there are two main targets:
......

[[email protected] 10.0.0.201]# cat -A /root/inittab.bak 
# inittab is no longer used when using systemd.$
$
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.$
$
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target$
$
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:$
......

cat命令的特殊用法-像文件追加多行内容

常用于从Windows主机复制内容到Linux系统文件中

[[email protected] aspen]# cat ./Aspen.txt 
Hello World
Welcome to Linux
[[email protected] aspen]# cat >> ./Aspen.txt  <<EOF
> I
> am
> studying
> Linux
> EOF
[[email protected] aspen]# cat Aspen.txt
Hello World
Welcome to Linux
I
am
studying
Linux

less 文件名 按页查看文件内容(适用于查看大文件)

  • -N 显示行号

操作模式
f/空格 下翻一页
b 上翻一页
G 快速移至文件尾行
q 退出

more 文件名 按页查看文件内容(查看到文件尾行后,自动退出)

操作模式
f/空格 下翻一页
q 退出

[[email protected] ~]# less -N /etc/sysconfig/network-scripts/ifcfg-eth0 
      1 TYPE=Ethernet
      2 PROXY_METHOD=none
      3 BROWSER_ONLY=no
      4 BOOTPROTO=none
      5 DEFROUTE=yes
      6 IPV4_FAILURE_FATAL=no
      7 IPV6INIT=yes
      8 IPV6_AUTOCONF=yes
      9 IPV6_DEFROUTE=yes
     10 IPV6_FAILURE_FATAL=no
     11 IPV6_ADDR_GEN_MODE=stable-privacy
     12 NAME=eth0
     13 UUID=6b621622-b6a7-4a4d-84cc-a7daf1a94e81
     14 DEVICE=eth0
     15 ONBOOT=yes
     16 IPADDR=10.0.0.201
     17 PREFIX=24
     18 GATEWAY=10.0.0.254
     19 DNS1=223.5.5.5
     20 IPV6_PRIVACY=no
/etc/sysconfig/network-scripts/ifcfg-eth0 (END)

head 文件名 显示文件前几行内容(默认前十行)

  • -n 数字 == -数字 显示文件前n行内容(n=数字)
  • -c 数字显示文件的前n个字符(n=数字)
[[email protected] ~]# head -5 /var/log/secure
Apr  8 10:33:01 oldboyedu60-Aspen sshd[7547]: pam_unix(sshd:session): session closed for user root
Apr  9 14:02:45 oldboyedu60-Aspen unix_chkpwd[8652]: password check failed for user (root)
Apr  9 14:02:45 oldboyedu60-Aspen login: pam_unix(login:auth): authentication failure; logname=LOGIN uid=0 euid=0 tty=tty1 ruser= rhost=  user=root
Apr  9 14:02:45 oldboyedu60-Aspen login: pam_succeed_if(login:auth): requirement "uid >= 1000" not met by user "root"
Apr  9 14:02:47 oldboyedu60-Aspen login: FAILED LOGIN 1 FROM tty1 FOR root, Authentication failure
[[email protected] 10.0.0.201]# head -c 15 /var/log/messages
May 13 11:01:01[[email protected] 10.0.0.201]# 

tail 文件名 显示文件后几行内容(默认后十行)

  • -n 数字 == -数字 显示文件后n行内容(n=数字)
  • -f 显示文件实时更新
  • -F 显示文件实时更新(如文件不存在,会不断进行重试)

使用-F或-f参数时,如果要指定显示行数,必须加上-n参数

[[email protected] ~]# tail -n 3 -f  /var/log/secure
Apr 11 14:08:52 oldboyedu60-Aspen sshd[11097]: pam_unix(sshd:session): session closed for user root
Apr 11 14:09:06 oldboyedu60-Aspen sshd[11135]: Accepted password for root from 10.0.0.1 port 57227 ssh2
Apr 11 14:09:06 oldboyedu60-Aspen sshd[11135]: pam_unix(sshd:session): session opened for user root by (uid=0)

awk-行处理器

awk '{print $数字}' 取出指定列(默认按空格分割)

awk 'END{print $数字}' 表示awk处理文章最后一行内容后,按要求输出指定内容

$0表示按行输出内容

-F "符号" 指定分隔符

awk NR >=/<=/==数字 取出指定行

>=数字 取内容前指定行
<=数字 取指定行到结尾的内容
==数字 取指定行
>=数字&&<=数字或==数字,==数字 取指定范围行

[[email protected] ~]# awk -F":" '{print $1}' /etc/passwd | head -6
root
bin
daemon
adm
lp
sync
[[email protected] ~]# awk -F ":" 'END{print $1}' /etc/passwd 
stu05
[[email protected] ~]# awk -F ":" 'END{print $0}' /etc/passwd 
stu05:x:1006:1006::/home/stu05:/bin/bash
[[email protected] ~]# awk "NR==3,NR==6" /etc/passwd
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
[[email protected] ~]# awk "NR>=3&&NR<=6" /etc/passwd
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
[[email protected] ~]# ip address s eth0 | sed -n '3p' | awk -F "[ /]+" '{print $3}'
10.0.0.200

sed 's#被替换内容#替换内容#g' 文件名 流编辑器(全局替换,默认不修改文件内容)

  • -i 修改文件内容
  • -i.bak 备份源文件后,修改文件内容
  • -n 取消默认输出
  • '数字p' 重复输出指定行

$p 表示最后一行

  • -r 反向引用
[[email protected] ~]# sed -i.bak 's#200#201#g' ip.txt 
[[email protected] ~]# ls
anaconda-ks.cfg  aspen  ip.txt  ip.txt.bak  num.txt
[[email protected] ~]# cat ./ip.txt 
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:c4:ff:80 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.201/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::7f33:52f3:3051:7cb9/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[[email protected] ~]# cat ./ip.txt.bak 
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:c4:ff:80 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.200/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::7f33:52f3:3051:7cb9/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[[email protected] ~]# sed -n '3p' ip.txt | sed -r 's#^.* ([0-9.]+)\/.*#\1#g'
10.0.0.201
[[email protected] ~]# stat /etc/passwd | sed -n '4p'|sed -r 's#^.*\((.*)\/-.*#\1#g'
0644
[[email protected] ~]# stat /etc/passwd | sed -n '4p'| sed -r 's#^.*([0-9]{4}).*#\1#g'
0644
[[email protected] ~]# sed -n '$p' ip.txt
       valid_lft forever preferred_lft forever

grep '关键字' 文件名 过滤文件中关键字内容,并用颜色显示出来

  • -n 显示过滤结果并附上行号
  • -v 过滤文件中与指定关键字无关的内容(按行取反)
  • -i 过滤时候忽略大小写
  • -o 显示过滤的执行过程
  • -w 精确匹配单词,单词的两边必须是非字符符号(即不能是字母数字或下划线)
  • -E == egrep 启用增强型grep,支持扩展正则表达式
[[email protected] aspen]# egrep -o '[a-Z]+' ./Aspen.txt | head -5
Hello
World
Welcome
to
Linux
[[email protected] aspen]# grep -vn '[a-z]' ./Aspen.txt 
3:I
8:
11:
14:$$$$$$$$$$$
15:?////????$.$.$.$$$
[[email protected] aspen]# grep -n '[^a-z]' ./Aspen.txt 
1:Hello World
2:Welcome to Linux
3:I
6:Linux
7:I study linux.
9:I like swim,basketball and chinese chess!
10:my qq is 54844637
12:not 548444637.
13:my god ,i am not apen,but Aspen!
14:$$$$$$$$$$$
15:?////????$.$.$.$$$

tr '被替换内容' '替换的内容' < 文件名 一对一替换文件中的字符

  • -d '关键字符' 删除对应的字符
  • -c 取反/排除
[[email protected] aspen]# tr -cd 'a-zA-Z0-9' < /dev/urandom | head -c 16 #设置随机密码
LgiYGzAAq5SNSZAD[[email protected] aspen]# 
[[email protected] aspen]# tr 'a-z' 'A-Z' < ./Aspen.txt 
HELLO WORLD
WELCOME TO LINUX
I
AM
STUDYING
LINUX
I STUDY LINUX.

I LIKE SWIM,BASKETBALL AND CHINESE CHESS!
MY QQ IS 54844637

NOT 548444637.
MY GOD ,I AM NOT APEN,BUT ASPEN!
$$$$$$$$$$$
?////????$.$.$.$$$

3.文件压缩及解压缩命令

tar 压缩包名称 目标文件/文件夹 将指定文件/文件夹打包

  • -z 通过gzip工具进行压缩
  • -j 通过bzip或bzip2工具进行压缩
  • -c 创建包
  • -x 解压缩(默认解压到当前目录)
  • -t 列出压缩包内容
  • -v 显示压缩过程
  • -C 目录 指定解压路径
  • -P使用绝对路径创建压缩包

压缩/解压缩不加-P,命令会自动把文件路径首个‘/’去掉变为相对路径

  • -f 指定压缩包名称
    -f 参数一般放在参数末位,防止报错

压缩一般用zcf参数
解压缩一般用xf参数
查看压缩包一般用tf参数

  • --exclude 文件/目录 创建压缩包时,排除某个文件/目录
[[email protected] aspen]# tar -zcf ./network-bak.tar.gz /etc/sysconfig/network-scripts/ --exclude /etc/sysconfig/network-scripts/ifcfg-eth0 
tar: Removing leading `/' from member names
[[email protected] aspen]# ls
Aspen.txt  han  network-bak.tar.gz
[[email protected] aspen]# tar -xf ./network-bak.tar.gz etc/sysconfig/network-scripts/ifcfg-lo 
[[email protected] aspen]# ls
Aspen.txt  etc  han  network-bak.tar.gz
[[email protected] aspen]# tree ./etc/
./etc/
└── sysconfig
    └── network-scripts
        └── ifcfg-lo
[[email protected] aspen]# tar xf ./network-bak.tar.gz -C /tmp/
[[email protected] aspen]# ls /tmp/etc/sysconfig/
network-scripts

4.搜索文件命令

which 命令 查询命令的别名及绝对路径

[[email protected] aspen]# which ls
alias ls='ls --color=auto'
    /usr/bin/ls
[[email protected] aspen]# \which ls
/usr/bin/ls

whereis 命令 查询命令的及其相关文件的绝对路径

[[email protected] aspen]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

locate 从数据库 (/var/lib/mlocate/mlocate.db) 查找命令,使用updatedb更新库(不推荐使用)

Cent OS 7中默认没有安装该命令,需使用 yum install -y mlocate 指令进行安装

find 搜索路径 在指定路径下搜索文件

  • -maxdepth 数字 指定搜索的最大深度

maxdepth 参数要放到其他参数之前,否则会有警告

  • -type 文件类型 指定搜索文件的类型

f普通文件
d目录
l软链接
p管道文件
c字符设备

  • -name "文件名" 指定搜索文件的名字
  • --iname "文件名" 指定搜索文件的名字(忽略大小写)
  • -size +/- 容量 指定搜索文件的大小范围(容量仅支持整数,不支持小数)
  • -mtime '+/- 天数' 指定搜索文件修改时间

+表示几天以前
-表示最近几天内

  • -inum inode号码 指定索引文件的索引结点号
  • -samefile 文件名指定搜索与目标文件索引结点号一致的文件
  • -exec 命令 {} ; 将搜索到的文件执行指定命令操作

exec参数后面不支持别名

[[email protected] aspen]# find /etc/ -type f -iname 'ifcfg*' -exec ls -lh {}  \;
-rw-r--r--. 1 root root 254 Aug 24  2018 /etc/sysconfig/network-scripts/ifcfg-lo
-rw-r--r--. 1 root root 356 May 13 09:24 /etc/sysconfig/network-scripts/ifcfg-eth0
[[email protected] aspen]# find /var/log/ -maxdepth 1 -type f -size +100k -exec cp -t /tmp {} \;
[[email protected] aspen]# ls /tmp
dmesg  dmesg.old  etc  lastlog  messages  messages-20190418  vmware-root_6327-1681724229  vmware-root_6482-734103686
[[email protected] aspen]# find /etc/ -type f -size +1M -exec tar zcf /opt/etc-big.tar.gz {} +;
tar: Removing leading `/' from member names
[[email protected] aspen]# tar tf /opt/etc-big.tar.gz 
etc/selinux/targeted/active/policy.kern
etc/selinux/targeted/contexts/files/file_contexts.bin
etc/selinux/targeted/policy/policy.31
etc/udev/hwdb.bin

Linux命令要养成操作前备份,操作后检查的好习惯
未完待续...