六、文件查找

发布于:2024-05-08 ⋅ 阅读:(32) ⋅ 点赞:(0)

一、文件查找

1.查找文件内容

​ 命令:grep 'keywords' /dir_path/filename

2.查找系统命令

​ 命令:which command

3.查找命令及配置文件位置

​ 命令:whereis command

4.find查找

find $find_path -name|-type|-perm|-size|-atime|-mtime|-ctime

4.1按文件名查找

find ./ -name "filename"
find ./ -name "*txt" 通配符
find ./ -iname "*txt" 忽略大小写

4.2按文件大小查找

find ./ -size +5M 大于

-5M 小于

5M 等于

4.3按时间查找

find ./ -[mtime|ctime|atime] +30
find ./ -[mmin|cmin|amin] -20

image-20240507162725438

-atime = access访问时间,
查找在指定时间曾被存取过的文件或目录,单位以24小时计算
cat, less, more
chmod, chown, ls, stat 等不会修改些时间,
使用 ls -utl 可以按此时间顺序查看;
-mtime = modify改变时间
查找在指定时间曾被更改过的文件或目录,单位以24小时计算
内容修改时间会改变,最后一次内容修改时间,
vim 保存后等,
修改时间发生改变的话, atime 和 ctime 也相应跟着发生改变.
-ctime = change修改时间
查找在指定时间之时被更改的文件或目录,单位以24小时计算
属性修改时间会改变,
chmod, chown 等状态时间改变,但修改时间mtime不会改变

4.4按文件类型查找

find ./ -type f 普通文件
d 目录
l 软连接
b 设备块

4.5按文件权限查找

  • 查找当前目录下文件权限为755的文件及目录

    find ./ -perm 755

4.6参数逻辑关系

  • 并且 -a

find / -name "*.txt" -a -type f

  • 或者 -o

find / -name "*.txt" -o -type f

  • 取反:!

find /etc/ ! -name "*.conf"

​ 案例:分别找出test5 和 除了test5的文件

[root@localhost ~]# find /home/ -name *test5*
[root@localhost ~]# find /home/ ! -name "test5*" # !--取反

4.7查找后的action

4.7.1 exec

find /etc -name "ifcfg*" -exec cp -rf {} /tmp \;

	exec命令:对之前查找出来的文件做进一步操作

	{}为前面查找到的内容,

	\; 表示动作结束
4.7.2 xargs

find /home/ -name "test*" | xargs -i cp {} /tmp/

	xargs 参数传递
4.7.2 exec与xargs的区别
  • -exec:频繁启动终止进程。如果执行的动作太多,就会报错。(参数是一个一个传递的,传递一个参数执行一次命令。)

  • xargs:只调用一个进程,直到所有任务处理结束,才会终止这个进程。(将前一个命令的标准输出传递给下一个命令,作为它的参数转换成下一个命令的参数列表。)

  • PS:xargs不能操作文件名有空格的文件;

如果有100万个 文件名包含空格的文件 则可以考虑 给文件改名,然后用xargs处理。

二、打包压缩

1.打包及压缩工具

  • 打包工具:

    tar(打包)

  • 压缩工具

    gzip .gz

    bzip2(只压缩) .bz2

    zip .zip

    xzip .xz

2.tar打包解包

2.1 tar打包

tar -cvf dir.tar dir
tar -cf dir.tar dir

2.2 tar解包

tar -xvf dir.tar

tar xf dir.tar

3.各类压缩及解压缩工具

  • gzip

    • 压缩:

      gzip filename

    • 解压缩:

      gzip -d filename.gz

      gunzip filename.gz

  • bzip2 yum -y install bzip2

    • 压缩:

      bzip2 filename

    • 解压缩:

      bzip2 -d filename.bz2

      bunzip2 filename.bz2

  • xzip 与tar连用

  • zip

    • 压缩:

      zip -r dirname.zip dir

    • 解压缩:

      unzip dirname.zip

    • 解压到指定位置:

      unzip dirname.zip -d /usr/local/src

4.tar打包解包+各类压缩

4.1 tar打包+各类压缩

tar -cvzf dir.tar.gz dir

tar -cvjf dir.tar.bz2 dir

tar -cvJf dir.tar.xz dir

4.2 tar解包+各类压缩

tar -xvzf dir.tar.gz

tar -xjvf dir.tar.bz2

tar -xJvf dir.tar.xz

  • 解压到指定位置:

    tar -xf dir.tar.gz -C /usr/local/src

三、邮件

1.配置邮件

yum install -y mailx
vim /etc/mail.rc

set from=\$mail_addr
set smtp=smtp.163.com
set smtp-auth-user=\$mail_addr
set smtp-auth-password=SMTP授权码
set smtp-auth=login

2.发送邮件

工作级备份日志邮件

cat /etc/passwd | mail -s "邮件主题" mail_addr

cd /var &> /dev/null && tar -czf log-`date +%F`.tar.gz log/ 
&& echo "备份成功"| mail -s "备份日志" mail_addr 
|| echo "备份失败"| mail -s "备份日志" mail_addr

cd /vr &> /dev/null && tar -czf log-`date +%F`.tar.gz log/ 
&& echo "备份成功"| mail -s "备份日志" mail_addr 
|| echo "备份失败"| mail -s "备份日志" mail_addr