1
、
find
:主要进行文件搜索
find [
文件路径
] [
选项
选项的值
]
常见的选项
-name *
根据文件的名称搜索文件,支持通配符
*
-type f | d f
代表普通文件,
d
代表目录
![](https://i-blog.csdnimg.cn/direct/d0e1b2f4d76a4549ad5a60d0dff33344.png)
案例,找到
httpd.conf
文件
![](https://i-blog.csdnimg.cn/direct/c307cc8cba344edfaba0dc1f3dcce4d4.png)
*
通配符
在
linux
系统中,如果要查找的文件的名称不清晰,可以使用部分文件名
+*
搜索
通配符
*
匹配零个或多个字符
通配符也可以使用在
ls
中
案例 获取
/etc/
中以
.conf
结尾的文件
![](https://i-blog.csdnimg.cn/direct/ddc9cfeb2d1443df9911448292189ed7.png)
案例 搜索以http
开头的文件
![](https://i-blog.csdnimg.cn/direct/bce04631d7a24a578b6da5a50f6a95e6.png)
2
、
stat
:获取文件访问时间
![](https://i-blog.csdnimg.cn/direct/b16ae549d4b042d497b305332262beae.png)
3
、
touch
:创建文件时规定创建时间
touch
创建文件,没有文件就新建,有文件就修改
touch
文件名称
-m -d “
日期时间格式
”
![](https://i-blog.csdnimg.cn/direct/63bb8f6e6a7c47d6877e312e68ecc5bf.png)
4
、
dd
:创建文件时规定文件大小
dd
是一个用于复制文件和转换文件的工具。
在这个命令中:
if=/dev/zero
表示输入文件为
/dev/zero
,这是一个提供连续零字节的设备文件。
of=/opt/hh.txt
指定输出文件为
/opt/hh.txt
。
bs=100M
表示每次读写的块大小为
100
兆字节(
M
)。
count=1
表示读写的块数量为
1
。
综合起来,这个命令的作用是在
/opt
目录下创建一个大小为
100
兆字节的文件
hh.txt
,文件的内容全部为零。
清空
opt1
目录下所有文件
![](https://i-blog.csdnimg.cn/direct/9773991c6b7d43c0bb7330cc9018eb64.png)
在
opt1
目录下创建
a.txt,b.txt,c.txt
![](https://i-blog.csdnimg.cn/direct/9c69c2266019407cadea6b9e3e996a93.png)
5
、使用
find
按时间查找旧文件并删除
使用
find
按时间搜索,找到旧的文件删掉
fi
nd
⽂件路径
-mtime +days/-days
-mtime
根据⽂件最后修改时间搜索⽂件
+
号 搜索⼏天之前的⽂件信息
-
号 搜索⼏天之内的⽂件信息
案例 搜索
3
天以前的信息,不包含第三个的,⽽且只搜
txt
⽂件
![](https://i-blog.csdnimg.cn/direct/471a5b9834df46cb9b66fbd8da5000b7.png)
案例
搜索三天以内的
.txt
⽂件 ,包含今天
![](https://i-blog.csdnimg.cn/direct/9a95275353c340eab7fe160399e21f50.png)
话说还有个
d.txt
⽂件没有搜到
![](https://i-blog.csdnimg.cn/direct/59882aaa79eb4ff691ea3c83724a622e.png)
问题:
ls
与
find
找到文件之后不能直接删除文件
方法一:
-exec
find
命令结合
exec
选项可以用来删除文件。
使⽤
-exec
⽂件调⽤
rm
函数
{}
表示前⾯
find
查到的内容
\;
表示标识符
![](https://i-blog.csdnimg.cn/direct/32198706aa1b46008d13f98f769f428f.png)
方法二:
xargs
find
与
xargs
结合使用
xargs
是一个在
UNIX
和类
UNIX
系统中非常有用的命令,用于将标准输入转换为命令行参数,并执
行指定的命令。
它的主要作用是将前面命令的输出结果,按照一定的规则传递给后续的命令作为参数。
![](https://i-blog.csdnimg.cn/direct/eb188f8b93d34028bc7ce1d481e7d38a.png)
用法
1
:将输入转换为命令参数
假设我们有一个文件
files.txt
,里面包含了一些文件名,我们可以使用以下命令来删除这些文
件:
cat files.txt | xargs rm
用法
2
:指定每次传递的参数个数
通过
-n
选项可以指定每次传递给后续命令的参数个数。例如,每次传递
2
个参数给
ls
命令:
cat files.txt | xargs -n 2 ls
用法
3
:结合
find
命令使用
可以与
find
命令结合,对找到的文件进行操作。例如,查找当前目录下所有的
.txt
文件并修改
其权限:
find. -type f -name "*.txt" | xargs chmod 644
用法
4
:与其他命令配合
比如,使用
mkdir
创建多个目录:
echo dir1 dir2 dir3 | xargs mkdir
6
、使用
find
按文件大小进行搜索
[root@1 ~]# find / -size +100M //
查找大于
100M
的文件
[root@1 ~]# find / -size +1G //
查找大于
1G
的文件
[root@1 ~]# find / -size -100k //
查找小于
100k
的文件
使用
find
按照文件大小查找文件(也能找到隐藏文件)
[root@1 ~]# find /opt1/ -size +5M
/opt1/c.txt
[root@1 ~]# find /opt1/ -size -5M
/opt1/
/opt1/a.txt
[root@1 ~]# find /opt1/ -size 5M
/opt1/b.txt
7
、
tree:
用于以树状结构显示目录和文件
基本用法
:
直接在终端输入
tree
,将显示当前目录的树状结构。
指定目录
:
如果要显示特定目录的树状结构,只需在命令后添加目录路径,例如:
tree /home/user/directory
控制显示深度
:
使用
-L
选项指定显示的深度,例如显示
2
层深度:
tree -L 2
只显示目录
:
使用
-d
选项,例如:
tree -d
显示文件权限等详细信息
:
使用
-p
选项,例如:
tree -p
输出到文件
:
可以将树状结构输出到文件中,例如:
tree > tree_output.txt
以下是一个示例,假设在
/home/user/project
目录下有以下结构:
![](https://i-blog.csdnimg.cn/direct/694b49ab6588499f9eaba8a67b10d88a.png)
执行
tree -L 2
命令后,输出可能如下:
![](https://i-blog.csdnimg.cn/direct/dc0f951d14e147b0bf28d8be9f2bdfc8.png)
执行
tree -d
命令,输出可能如下:
![](https://i-blog.csdnimg.cn/direct/9749bf11d04545d4b0471d9a1d946352.png)
执行
tree -p
命令,输出可能包含文件权限信息,例如:
![](https://i-blog.csdnimg.cn/direct/fa9c8259150e468f81803e1076d6c2ad.png)
8
、
scp
:上传下载文件
SCP
介绍:
下载
把数据从远程主机保存到本地主机
上传
把本地文件保存到远程主机
SCP
(
Secure Copy
)是一种用于在本地和远程主机之间安全传输文件和文件夹的命令行工具,它基 于 SSH
协议,并提供了加密和身份验证机制,确保数据的安全性和完整性。(要求本地主机与远程主机 都是linux
系统)
命令:
![](https://i-blog.csdnimg.cn/direct/2f02c4005fe044bd857261559d9c9649.png)
其他常用选项:
-p
:保留文件的最后修改时间、最后访问时间和权限模式;
-c
:使用指定的加密算法进行数据加密;
-q
:不显示传输进度信息;
-P
:指定
SSH
服务器的端口号(如果不是默认的
22
端口);
-i
:指定用于身份验证的私钥文件路径(如果使用
SSH
密钥对进行认证)。
如果远程主机上的
SSH
服务器使用非标准端口
2222
,可以使用以下命令上传文件:
scp -p 2222 /path/to/local/file user@remote:/path/to/destination
如果希望使用
SSH
密钥对进行身份验证,可以通过添加
-i
选项指定私钥文件的路径:
![](https://i-blog.csdnimg.cn/direct/e6ad65390f514baab9f3f06731fb65e5.png)
9
、
crontab
:计划任务
Crontab
介绍:
Crontab
是类
Unix
操作系统(包括
Linux
系统)中的一个用于设置定时任务的工具。
它通过一种特定的语法来指定任务执行的时间规则。例如,
* * * * * command
表示每分钟执行
一次
command
命令。
其时间设置字段从左到右依次为:分钟(
0 - 59
)、小时(
0 - 23
)、日(
1 - 31
)、月(
1 - 12
或 jan - dec)、星期(
0 - 7
或
sun - sat
,
0
和
7
都表示星期日)。
以下是一些常见的例子:
0 5 * * * command
:每天早上
5
点执行。
30 18 * * 1-5 command
:周一到周五的
18
点
30
分执行。
0 0 1 1 * command
:每年
1
月
1
日的
0
点执行。
使用
crontab
可以方便地实现各种定时任务,如定时备份数据、定时清理缓存、定时发送邮件等。 它在系统管理和自动化任务处理中发挥着重要作用。
命令:
(
1
)查看是否存在计划任务
![](https://i-blog.csdnimg.cn/direct/aa494fdef2e244c185f09c4c6435ac08.png)
(
2
)每分钟自动将
opt
目录中的文件名写到
root
目录下的
list
中
![](https://i-blog.csdnimg.cn/direct/7075c39a8bd345c1931a35829a70bd80.png)
(
3
)验证
![](https://i-blog.csdnimg.cn/direct/56cbb051ff654f59bef2602955c61d4e.png)
(
4
)使用
dd
命令进行测试
![](https://i-blog.csdnimg.cn/direct/1cf5b10384f245ac83cd931cc8145c8b.png)
(
5
)每分钟在
/tmp
目录下创建一个
tar
包(包含
etc
目录下的所有文件)
![](https://i-blog.csdnimg.cn/direct/de7715916f3646cdbe1caa20696c197a.png)
(
6
)研究时间戳
![](https://i-blog.csdnimg.cn/direct/c1bbe8f0c97d46ae8718dea4cc298d31.png)