一、find命令
1、概念
find命令用于在目录结构中搜索文件,并执行指定的操作。提供了强大的功能,允许用户根据指定的条件在文件系统中搜索文件。这些条件可以包括文件名、文件类型、文件大小、修改时间等多种属性。通过使用find命令,用户可以轻松地找到满足特定条件的文件,并对这些文件执行指定的操作,如删除、复制、移动等。
2、基本语法
fifind [⽂件路径] [选项 选项的值]
-name *
-type f|d
常⻅的选项
-name 根据⽂件的名称搜索⽂件,⽀持通配符*
-type f代表普通⽂件,d代表⽬录
[root@localhost~]# find /opt/ -name "*a"
[root@localhost~]# find /opt/ -name "*a" -type d
[root@localhost~]# find / -name "zhuxiao" -type f
案例:找到httpd.conf文件
[root@localhost~]#yum install -y httpd //安装httpd服务
[root@localhost~]# find / -name "*http" type f //查找文件
[root@localhost~]#find /etc/ -name "httpd.conf " -type f //将范围换成etc目录,查找更快
3、通配符
通配符主要用于代表一个或多个字符,以便在搜索或处理文本、文件名、数据库记录等时,能够匹配多种可能性。
案例 获取、etc中以conf结尾的文件
[root@localhost~]#find /etc/ -name "*.conf" -type f
搜索以http开头的文件
[root @localhost~]#find /etc/ -name "http*" -type f
二、创建并设置文件并修改文件
使用stat命令获取文件的时间信息
[root@localhost~]# stat /opt/test.conf
创建文件 并配置文件的修改时间
[root@localhost~]#touch -m -d “2020-7-7 00:00” /opt/abc.txt
格式:touch -m -d 日期时间格式 文件名称
文件不存在就创建并修改时间 文件存在只配置最后修改时间
三、根据文件的最后修改时间搜索文件
格式
find 文件路径 -mtime +days/-days
-mtime 根据文件最后修改时间搜索文件
+ 搜索几天前的文件信息
-搜索几天之内的文件信息
四、根据文件size大小搜索文件
格式 find 路径 -size 文件大小 [常用单位 k M G]
size值 搜索等于size的⽂件
-size值 【0,size值)
+size值 (size值,正⽆穷)
扩展命令 dd 使⽤dd创建扩展命令 ⽣成指定⼤⼩的测试⽂件
语法 dd if=/dev/zero of=⽂件名称 bs=1M count=1
if表示输⼊⽂件
of表示输出⽂件
bs代表字节为单位的块⼤⼩
count代表被复制的块
其中/dev/zore是⼀个字符设备,会不断地返回0字节的⽂件
五、创建文件列表,将文件名称以树的形式展示
需要使用yum指令进行安装
yum -y install tree
以树状结构显示/var/log目录中的文件
[root@localhost~]# tree /var/log/
五、克隆虚拟机
scp实现linux系统和linux之间的克隆操作
实现linux和linux之间的⽂件传输
需要两个linux 克隆操作 使⽤克隆快速⽣成 要求关机后操作
六、scp要求两台主机的系统都是linux系统
1.使⽤scp下载⽂件和⽬录 语法 scp [选项] ⽤户名@linux主机地址:/资源路径 linux本地⽂件路径 复制⽂件 1.查看克隆机的ip地址,并且清空opt⽬录中的⽂件
2.查看原主机的ip地址,并且查看opt⽬录中的数据
3.从原主机上下载/opt/a.txt到克隆机上的/opt⽬录,注意如果有询问,输⼊yes 再输⼊密码即可 复制⽬录1.源主机opt⽬录下创建⽬录,并且将a.txt b.txt c.txt复制⼀份在新⽬录中 2.在克隆机上使⽤scp指令复制⽬录到本地opt⽬录,需要添加-r选项,⽆法执⾏ 第⼆次连接主机,不需要再次输⼊yes -r 代表递归,主要作⽤⽂件夹
练习题:
1. 使⽤ls查看/etc/⽬录下所有的⽂件信息
ls -la /etc/
2. 使⽤ls查看/etc/⽬录下名包含“a”字⺟的⽂件或者⽬录信息
ls -ld /etc/*a* /etc/a*
3. 使⽤ls查看/etc/⽬录下以".conf"结尾的⽂件信息
ls -l /etc/*.conf
4. 使⽤ls查看/etc/⽬录中以"y"字⺟开头的⽂件信息
ls -l /etc/y*
5. find查找/var/⽬录中以“.log”⽂件
find /var/ -type f -name ".log"
6. 在opt⽬录下创建test⽬录
mkdir /opt/test
7. 在test⽬录中创建abc.txt,def.txt.ghi.txt,xxx.txt.yyy.txt五个⽂件
cd /opt/test # 首先切换到/opt/test目录
touch abc.txt def.txt ghi.txt xxx.txt xxx.txt.yyy.txt
8. 修改以上5个⽂件的最后修改时间分别为15,14,13,12,11,10⽇
切换到/opt/test
cd /opt/test # 修改文件的最后修改时间
touch -d "2023-01-15" abc.txt
touch -d "2023-01-14" def.txt
touch -d "2023-01-13" ghi.txt
touch -d "2023-01-12" xxx.txt
9. 在test⽬录下创建a⽬录
mkdir /opt/test/a
10. 将以上5个⽂件复制⼀份到a⽬录中
cp /opt/test/abc.txt /opt/test/a/
cp /opt/test/def.txt /opt/test/a/
cp /opt/test/ghi.txt /opt/test/a/
cp /opt/test/xxx.txt /opt/test/a/
cp /opt/test/xxx.txt.yyy.txt /opt/test/a/
11. 将a⽬录⽂件做成bak.tar.gz⽂件保存到家⽬录中
tar -czvf ~/bak.tar.gz -C /opt/test/ a/
12. 使⽤find删除test⽬录下3天前的⽂件
find /opt/test -type f -mtime +3 -exec rm -f
13. find删除opt⽬录下3天内的⽂件
find /opt -type f -mtime -3 -exec rm -f
14. find删除正好第三天的⽂件
find /opt -type f -mtime 3 -print
15. 将/opt/test/a⽬录中的⽂件复制i⼀份到/opt/test/⽬录下
cp -r /opt/test/a/* /opt/test/
16. 创建⽬录/opt/test0
mkdir /opt/test0
17. 在/opt/test0/⽬录中创建三个⽂件 a.mp4(5M),b.mp4(20M),c.mp4(80M)
# 进入/opt/test0目录
cd /opt/test0 # 创建a.mp4,约5MB
fallocate -l 5M a.mp4
# 创建b.mp4,约20MB fallocate -l 20M b.mp4
# 创建c.mp4,约80MB fallocate -l 80M c.mp4
18. 创建⽬录/opt/test0/b/
mkdir -p /opt/test0/b/
19. 将/op t/test0/中的⽂件复制⼀份/opt/test0/b/⽬录中
cp /opt/test0/* /opt/test0/b/
20. find查询/opt/test0/⽬录中⽂件⼤于20M的,并删除
find /opt/test0/ -type f -size +20M -exec rm {} \;
21. find查询/opt/test0/⽬录中⽂件⼩于20M的⽂件并删除
find /opt/test0/ -type f -size -20M -ok rm {} \;
22. find查找/opt/test0/⽬录中⽂件size为20M的⽂件并删除
find /opt/test0/ -type f -size 20M -ok rm {} \;
23. /opt/test0/b中的⽂件复制⼀份到/opt/test0中
cp /opt/test0/b/* /opt/test0/
24. 打开新的虚拟主机
启动虚拟化软件:
打开已安装的虚拟化软件(如VMware Workstation、VirtualBox等)的图形界面。
新建虚拟机:
在虚拟化软件的主界面中,找到并点击“新建虚拟机”或类似的选项。
跟随新建虚拟机向导,填写或选择必要的配置信息,如虚拟机名称、存储位置、操作系统类型及版本等。
这些步骤通常是通过图形界面完成的,而不是通过代码。
配置虚拟机硬件:
根据需要配置虚拟机的处理器、内存、网络适配器、硬盘等硬件资源。
这些配置也是在图形界面中进行的。
完成配置并启动虚拟机:
完成所有配置后,保存设置并启动虚拟机。
如果选择从ISO镜像安装操作系统,虚拟机将启动并进入操作系统的安装界面。
25. 将家⽬录中的bak.tar.gz⽂件上传到新主机的/opt⽬录中
scp ~/bak.tar.gz username@newhost:/opt/
26. 将新主机的/e tc/skel/⽬录下载到 当前主机的/opt⽬录中
scp -r username@newhost:/etc/skel/ /opt/skel/
27. 设置计划任务,每周3将/e tc/yum.repos.d/⽬录下的.repo⽂件压缩保存到tmp,在⽂件 名中添加时间戳
#!/bin/bash # 创建一个包含当前时间的变量 TIMESTAMP=$(date +%Y%m%d%H%M%S)
# 压缩/etc/yum.repos.d/目录下的所有.repo文件 tar -czvf /tmp/repos_$TIMESTAMP.tar.gz /etc/yum.repos.d/*.repo