文章目录
通配符
符号 | 意思 |
---|---|
; | 分隔命令,一次执行多个命令 |
&& | 前一个命令必须执行成功才会执行后一个命令 |
& | 把当前的进程放入后台运行 |
* | 表示所有 查找所有任意字符 |
? | 代表任意一个字符 |
[abc] | 表示或者 中括号内的字符按或者去匹配 |
[a-z] | 表示或者 a-z区间 |
[!abcd] | !表示取反 |
[!abcd] | !加撬棍 取普通字符 |
特殊符号
符号 | 意思 |
---|---|
不加引号 | 可以解析变量,和加双引号相同 但不能识别中间用空为一个整体 |
双引号 | 可以解析变量,可以将引号内视为一个整体,即使又空格也不例外 |
单引号 | 不可以解析变量,单引号内所有内容变为普通字符,没有含义,所见即所得 |
- PS:如果普通命令中无变量,则双引号,单引号没区别
find 查找目录下的文件
find 查找文件
尽量使用相对路径 绝对路径查找文件 尽量不在 / 下 查找
语法格式:
find 在哪里找 找什么类型的
find ./ -type f #在当前路径查找普通文件
find ./ -type d #在当前路径查找目录
-type 类型
类型 | 翻译 |
---|---|
f | 文件 |
d | 目录 |
l | 软链接 |
b | 块设备 |
c | 字符设备 |
全部查找 包含隐藏文件
案例1:查找当前目录所在普通文件 包含隐藏文件
find ./ -type f
使用全路径方式查找
find /root/oldboy -type f
案例2:查找当前目录下的所有的目录
find ./ -type d
按名字查找
案例3:按照名称查找文件 -name 区分大小写
find ./ -type f -name "1.txt"
find ./ -type f -name "*.txt"
案例4:按名称查找文件 不区分大小写 -iname
find ./ -type f -iname "*.TXT"
案例5:直接按照名称查找文件
find ./ -name "3.sh"
按模糊名字查找
案例6:查找文件区间
find ./ -type f -iname "[1-5].*"
按深度等级查找
案例7: 按照深度等级查找文件 -maxdepth 1
find oldboy -maxdepth 1 -type f
按时间查找
案例8:按时间进行查找文件
find ./ -mtime -1
find ./ -type f -mtime +7
按inode查找
案例9:按inode进行查找文件
查找到并且删除
root@xiaoheng ~/heng]# find ./ -inum 202358662|xargs rm -rf
[root@xiaoheng ~/heng]# tree
.
├── 2.txt
├── 3.txt
├── 4.txt
└── 5.txt
按文件大小查找
案例10:按文件大小查找文件
find ./ -type f -size +10M
什么情况使用文件大小查找文件?
1.磁盘满 查找文件大小 inode
2.磁盘满查找目录大小 block
du 查看文件大小
时间格式:
数字 | 代表 |
---|---|
0 | 查找24小时内文件 |
1 | 查找24-48小时内的文件 |
-1 | 查找1天内 |
+1 | 查找1天前 |
企业中使用find
1、查找7天被修改过的文件 我的日志文件只留7天或者30天 7天或30天以前的内容删除 或者打包备份到备份服务器
2、查找7天内文件被修改过的文件(1天 2天)
系统被攻击 网站被攻击 服务被攻击 恶意攻击 文件会被篡改 网站页面被篡改
使用find处理结果的三种方式
第一种方法 使用 | 管道符
案例1:查找内容进行复制
[root@xiaoheng ~/heng]# find ./ -type f -name "1.*"|xargs cp -t heng/
[root@xiaoheng ~/heng]# tree
.
├── feng
│ └── 1.txt
├── heng
│ └── 1.txt
└── zhi
案例2:查找的内容进行移动
[root@xiaoheng ~/heng]# find ./ -type f -name "1.*"|xargs -i mv {} zhi/
[root@xiaoheng ~/heng]# tree
.
├── feng
├── heng
└── zhi
└── 1.txt
案例3:查找的内容进行删除
[root@xiaoheng ~/heng]# find ./ -type f -name "1.*"|xargs rm -rf
[root@xiaoheng ~/heng]# tree
.
├── feng
├── heng
└── zhi
案例4:查找到的内容进行打包
[root@xiaoheng ~/heng]# find ./ -type f -name "*.txt"|xargs tar zcvf heng/all2.tar.gz --exclude=feng/1.txt
./feng/2.txt
./feng/3.txt
./feng/4.txt
./feng/5.txt
[root@xiaoheng ~/heng]# tree
.
├── feng
│ ├── 1.txt
│ ├── 2.txt
│ ├── 3.txt
│ ├── 4.txt
│ └── 5.txt
├── heng
│ ├── all2.tar.gz
│ └── all.tar.gz
└── zhi
笔试题:查找30天之前的文件并且删除
第二种方法 使用 -exec
格式: find ./ -type f -name “1.txt” -exec 命令 {} ;
案例1:find结果进行复制
[root@xiaoheng ~/heng]# find ./ -type f -name "*.gz" -exec cp {} zhi/ \;
[root@xiaoheng ~/heng]# tree
.
├── feng
│ ├── 1.txt
│ ├── 2.txt
│ ├── 3.txt
│ ├── 4.txt
│ └── 5.txt
├── heng
│ ├── all2.tar.gz
│ └── all.tar.gz
└── zhi
├── all2.tar.gz
└── all.tar.gz
案例2:find结果进行移动
.
├── feng
├── heng
│ ├── all2.tar.gz
│ └── all.tar.gz
└── zhi
├── 1.txt
├── 2.txt
├── 3.txt
├── 4.txt
├── 5.txt
├── all2.tar.gz
└── all.tar.gz
3 directories, 9 files
[root@xiaoheng ~/heng]# find zhi/ -type f -name "*.txt" -exec mv {} feng/ \;
[root@xiaoheng ~/heng]# tree
.
├── feng
│ ├── 1.txt
│ ├── 2.txt
│ ├── 3.txt
│ ├── 4.txt
│ └── 5.txt
├── heng
│ ├── all2.tar.gz
│ └── all.tar.gz
└── zhi
├── all2.tar.gz
└── all.tar.gz
案例3:find结果进行删除
[root@xiaoheng ~/heng]# find ./ -type f -exec rm -rf {} \;
[root@xiaoheng ~/heng]# tree
.
├── feng
├── heng
└── zhi
- PS:使用-exec方式不可以进行打包
第三种方案:使用反引号 `` 和 $() 这个两个符号相同
作用:命令先执行反引号中的,然后在执行整体的
案例1:find结果复制
.
├── feng
│ ├── 1.txt
│ ├── 2.txt
│ ├── 3.txt
│ ├── 4.txt
│ └── 5.txt
├── heng
└── zhi
3 directories, 5 files
[root@xiaoheng ~/heng]# cp `find ./ -type f` heng/
[root@xiaoheng ~/heng]# tree
.
├── feng
│ ├── 1.txt
│ ├── 2.txt
│ ├── 3.txt
│ ├── 4.txt
│ └── 5.txt
├── heng
│ ├── 1.txt
│ ├── 2.txt
│ ├── 3.txt
│ ├── 4.txt
│ └── 5.txt
└── zhi
案例2:find结果移动
[root@xiaoheng ~/heng]# mv $(find feng/ -type f) zhi/
[root@xiaoheng ~/heng]# tree
.
├── feng
├── heng
│ ├── 1.txt
│ ├── 2.txt
│ ├── 3.txt
│ ├── 4.txt
│ └── 5.txt
└── zhi
├── 1.txt
├── 2.txt
├── 3.txt
├── 4.txt
└── 5.txt
案例3:find结果删除
[root@xiaoheng ~/heng]# rm -rf `find ./ -type f`
[root@xiaoheng ~/heng]# tree
.
├── feng
├── heng
└── zhi