当前位置: 首页 > news >正文

文件查找与打包压缩,文件发送

grep:文件内容过滤
[root@hostname ~]# grep 'root' /etc/passwd从/etc/passwd文件中过滤root字段
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@hostname ~]# grep 'nologin$' /etc/passwd     //$以..结尾        ^以..开头
bin:x:1:1:bin:/bin:/sbin/nologin
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#递归查找
[root@qfedu.com ~]# grep -r 'root' /etc/
查找命令

[root@hostname ~]# which ls
alias ls='ls --color=auto'/usr/bin/ls
[root@hostname ~]# which find
/usr/bin/find
查询命令和配置文件的位置
[root@hostname ~]# whereis rpm
rpm: /usr/bin/rpm /usr/lib/rpm 
/etc/rpm /usr/share/man/man8/rpm.8.gz
[root@hostname ~]# whereis passwd
passwd: /usr/bin/passwd 
/etc/passwd /usr/share/man/man1/passwd.1.gz
[root@hostname ~]# 

一、find详解:文件查找,针对文件名

语法:

#find 路径 条件 跟条件相关的操作符  [-exec  动作]

路径:

1.默认不写路径时查找的当前路径

2.加路径

条件:

1.指定的名称        -name

2.文件类型        -tupe

3.权限

4.时间

1.1按文件名
[root@hostname ~]# find / -name tool.sh
/opt/tool.sh
从根开始找文件
[root@qfedu.com ~]# find / -name “file2” #从根开始找文件
/root/file2
/var/tmp/file2
[root@qfedu.com ~]# find /etc -name "ifcfg-ens33" #以名字的方式查找 
[root@qfedu.com ~]# find /etc -iname "Ifcfg-ens33" #-i忽略大小写

熟用*通配符

[root@hostname ~]# find /etc -name "*.txt"

参数解释:

*:表示所有字符

1.2按文件大小
[root@qfedu.com ~]# find /etc -size +5M		#大于5M
[root@qfedu.com ~]# find /etc -size 5M		#等于5M
[root@qfedu.com ~]# find /etc -size -5M      #小于5M
[root@qfedu.com ~]# find / -size +3M -a -size -5M  #查找/下面大于3M而且小于5M的文件
-a:and
[root@qfedu.com ~]# find / -size -1M -o -size            	 #查找/下面小于1M或者大于80M的文件
-o:or
[root@qfedu.com ~]# find / -size -3M -a -name "*.txt" #查找/ 下面小于3M而且名字是.txt的文件
1.3按时间查找

按时间找(atime,mtime,ctime)

-atime = access 访问时间

-mtime = modify 改变时间         内容修改时间会改变

-ctime = change修改时间   属性修改时间会改变

-amin  #分钟
-mmin
-cmin

[root@qfedu.com ~]# find /opt -mtime +5		#修改时间5天之前
[root@qfedu.com ~]# find /opt -atime +1     #访问时间1天之前
[root@qfedu.com ~]# find . -mtime -2		#修改时间2天之内[root@qfedu.com ~]# find . -amin +1         #访问时间在1分钟之前
[root@qfedu.com ~]# find /opt -amin -4      #访问时间在4分钟之内
[root@qfedu.com ~]# find /opt -mmin -2      #修改时间在2分钟之内
1.4按文件类型
[root@qfedu.com ~]# find /dev -type f	#f普通文件
[root@qfedu.com ~]# find / -type f -size -1M -o -name "*.txt"[root@qfedu.com ~]# find /dev -type d	#d目录
[root@qfedu.com ~]# find /etc/ -type d -name "*.conf.d"[root@qfedu.com ~]# find /etc -type l	#l链接[root@qfedu.com ~]# find /dev -type b	#b块设备
[root@qfedu.com ~]# find /dev/ -type b -name "sd*"
1.5按文件权限
[root@qfedu.com ~]# find . -perm 644            #.是当前目录    精确查找644  
[root@qfedu.com ~]# find /usr/bin  -perm -4000  #包含set uid
[root@qfedu.com ~]# find /usr/bin  -perm -2000  #包含set gid
[root@qfedu.com ~]# find /usr/bin  -perm -1000  #包含sticky
1.6找到后处理的动作ACTIONS

[root@hostname ~]# find /etc -name "ifcfg*" -exec cp -rf {} /tmp \;

#exec命令对之前查找出来的文件做进一步操作-----  查找带ifcfg开头的文件复制到tmp下

[root@hostname ~]# touch /home/test{1..20}.txt

[root@hostname ~]# find /home -name test* -exec rm -rf {} \;

 #{}为前面查找到的内容,\; 格式

find使用xargs

[root@qfedu.com ~]# touch /home/test{1..20}.txt
[root@qfedu.com ~]# # find /home/ -name "test*" | xargs -i cp {} /tmp/ #找到之后删除处理xargs 参数传递

[root@hostname ~]# find /tmp/ -name "ifcfg*" | xargs -i rm -rf {}

-exec和xargs的区别

-exec:参数是一个一个传递的,传递一个参数执行一次命令。
xargs:将前一个命令的标准输出传递给下一个命令,作为它的参数转换成下一个命令的参数列表。
===============
1、exec 每处理一个文件或者目录,它都需要启动一次命令,效率不好; 
2、exec 格式麻烦,必须用 {} 做文件的代位符,必须用 \来转义; 作为命令的结束符,书写不便。 
3、xargs不能操作文件名有空格的文件;

综上,如果要使用的命令支持一次处理多个文件,并且也知道这些文件里没有带空格的文件,那么使用 xargs比较方便; 否则,就要用 exec了。

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

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

二、打包压缩

window打包压缩工具:

结尾:.rar     .zip
打包工具:winrar zip 7zip bandizip

linux打包压缩工具:

结尾:.tar.gz      .tar.bz2     .zip   xz

工具:gzip和tar(打包)

bzip2(只压缩)

zip
打包压缩:zip -r etc.zip etc
解压缩:unzip etc.zip

xzip

打包

语法:
#tar cvf xxxx.tar filename   被打包的文件 ...
c :create  创建
v :verbose 详细信息
f :file  指定文件

解包

#tar xvf filename.tar [-C /root/Desktop]
x: extract  解压缩  解包
-C: 指定解包路径

案例

[root@qfedu.com ~]# tar cvf dir1.tar /home/dir10/ #打包目录dir10,将包命名为dir1.tar
[root@qfedu.com ~]# tar xf dir1.tar -C /usr/local/ #将dir1包解压到指定目录

压缩

gzip bzip2 xzip zip

语法:
压缩:
    #gzip  源文件   #格式  file.gz结尾
    #bzip2 源文件   #格式  file.bz2结尾

bzip2需要安装

[root@qfedu.com ~]# yum -y install bzip2   #打包bzip2需要安装

解压缩

语法:
#gunzip    压缩文件
#bunzip2   压缩文件

#gzip     -d 压缩文件  
#bzip2  -d 压缩文件
-d:dicompress 解压缩

案例:

[root@qfedu.com ~]# gzip file1  #压缩
[root@qfedu.com ~]# gzip -d file1.gz #解压缩
[root@qfedu.com ~]# gunzip file1.gz  #也是解压缩包
[root@qfedu.com ~]# gzip -c file1 > /usr/local/file1.gz  #压缩到指定位置(注意以.gz结尾)
[root@qfedu.com ~]# gunzip -c /usr/local/file1.gz > /opt/file1 #解压到指定位置(解压出的名字可以自定义)
-c, --stdout

打包压缩一起:

语法:
#tar cvzf file.tar.gz  源文件
#tar cvjf file.tar.bz2 源文件
#tar cvJf file.tar.xz  源文件
#打包压缩到指定路径
tar czf /opt/
z:表示gz压缩
j:表示bz2压缩

解压解包一起:

语法:
#tar xvzf 压缩文件 [-C 解压路径]
#tar xvjf 压缩文件 [-C 解压路径]

#tar -xf 压缩文件 -C 解压路径        //通用

打包到指定路径

[root@qfedu.com ~]# tar czf /tmp/`date +%F-%T`-etc.tar.gz /etc/  #将打包的文件放到/tmp目录下,并以当前时间开头命名

扩展--按时间创建目录或者文件

# mkdir `date +%F`-upload
# touch file-`date +%F`.txt

作业

查找系统内所有.gz结尾的文件并备份到/tmp/backup目录下
find / -name "*.gz" -exec cp {} /tmp/backup \;

find / -name "*.gz" | xargs -i cp {} /tmp/backup
查找10天以内被修改过的.txt结尾的文件
find / -name "*.txt" -a -mtime -10
+10:10天之前    -10:10天以内

邮件发送

yum -y install mailx

 

vim /etc/mail.rc

set from=邮箱号
set smtp=smtp.163.com        //或者smtp.qq.com
set smtp-auth-user=邮箱号
set smtp-auth-password=邮箱授权码
set smtp-auth=login

cat /etc/passwd | mail -s "测试邮件" 19991820903@189.cn

发送邮件

(1)

mail -s "邮件主题"  收件人地址  

邮件内容

Ctrl+d

(2)

mail -s "邮件主题"  收件人的地址 </etc/passwd(邮件内容所在文件)

(3)

echo "邮件内容" | mail  -s "主题"  -a 附件 收件人地址

相关文章:

文件查找与打包压缩,文件发送

grep&#xff1a;文件内容过滤 [roothostname ~]# grep root /etc/passwd从/etc/passwd文件中过滤root字段 root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin [roothostname ~]# grep nologin$ /etc/passwd //$以..结尾 ^以..开头 b…...

sv标准研读第十二章-过程性编程语句

书接上回&#xff1a; sv标准研读第一章-综述 sv标准研读第二章-标准引用 sv标准研读第三章-设计和验证的building block sv标准研读第四章-时间调度机制 sv标准研读第五章-词法 sv标准研读第六章-数据类型 sv标准研读第七章-聚合数据类型 sv标准研读第八章-class sv标…...

MySQL-联合查询

1.简介 1.1为什么要使用联合查询 在数据设计时由于范式的要求&#xff0c;数据被拆分到多个表中&#xff0c;那么要查询⼀个条数据的完整信息&#xff0c;就 要从多个表中获取数据&#xff0c;如下图所⽰&#xff1a;要获取学⽣的基本信息和班级信息就要从学⽣表和班级表中获…...

突触可塑性与STDP:神经网络中的自我调整机制

突触可塑性与STDP&#xff1a;神经网络中的自我调整机制 在神经网络的学习过程中&#xff0c;突触可塑性&#xff08;Synaptic Plasticity&#xff09;是指神经元之间的连接强度&#xff08;突触权重&#xff09;随着时间的推移而动态变化的能力。这种调整机制使神经网络能够通…...

【小沐学GIS】QGIS导出OpenStreetMap数据(QuickOSM、OSM)

文章目录 1、简介1.1 OSM1.2 QuickOSM1.3 Overpass Turbo 2、插件安装3、插件使用3.1 快速查询&#xff08;boundary边界&#xff09;3.2 快速查询&#xff08;railway铁路&#xff09;3.3 快速查询&#xff08;boundaryadmin_level行政边界&#xff09;3.4 快速查询&#xff0…...

推荐一款强大的书签管理工具,让你的网址不在落灰

在信息爆炸的互联网时代&#xff0c;我们每天都会浏览大量的网页&#xff0c;收藏各种各样的网址。然而&#xff0c;随着时间的推移&#xff0c;这些杂乱无章的书签往往让我们感到头疼。别担心&#xff0c;今天我要向你推荐一款强大的书签管理工具&#xff0c;它将帮助你轻松整…...

Python 工具库每日推荐 【Matplotlib】

文章目录 引言Python数据可视化库的重要性今日推荐:Matplotlib工具库主要功能:使用场景:安装与配置快速上手示例代码代码解释实际应用案例案例:数据分析可视化案例分析高级特性自定义样式动画效果3D绘图性能优化技巧扩展阅读与资源优缺点分析优点:缺点:总结【 已更新完 T…...

在远程非桌面版Ubuntu中使用Qt5构建Hello World项目

在 Linux 下运行 Qt 应用程序&#xff0c;需要完成以下几个步骤&#xff0c;包括安装 Qt 工具、设置开发环境以及编译和运行项目。下面是详细的步骤&#xff1a; 1. 安装 Qt 1.1使用系统包管理器 sudo apt update 和 sudo apt install qt5-default qtcreator 命令用于更新 U…...

netty之基础aio,bio,nio

前言 在Java中&#xff0c;提供了一些关于使用IO的API&#xff0c;可以供开发者来读写外部数据和文件&#xff0c;我们称这些API为Java IO。IO是Java中比较重要知识点&#xff0c;且比较难学习的知识点。并且随着Java的发展为提供更好的数据传输性能&#xff0c;目前有三种IO共…...

在找工作吗?给你一个AI虚拟面试官助力你提前准备面试

大家好&#xff0c;我是Shelly&#xff0c;一个专注于输出AI工具和科技前沿内容的AI应用教练&#xff0c;体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具&#xff0c;拥抱AI时代的到来。 让AI点亮我们的生活&#xff0c;是Shelly对…...

@KafkaListener注解中containerFactory属性的作用

在使用Spring Kafka时&#xff0c;containerFactory 属性是 KafkaListener 注解中的一个选项&#xff0c;它允许你指定一个 ContainerFactory Bean 的名称。这个 ContainerFactory 负责创建和管理 Kafka 消息监听容器。 以下是 containerFactory 属性的一些关键作用&#xff1…...

1006C简单题(计数式子的组合意义 + dp式子联立)

http://cplusoj.com/d/senior/p/SS241006C 对于这个式子&#xff0c;我们可以从它的组合意义入手。 假设我们有 n 1 n1 n1 个白球要染色&#xff0c;中间有一个绿球&#xff0c;绿球左边有 a a a 个红球&#xff0c;右边有 b b b 球。染完后绿球左边每个白球有 x x x 的贡…...

千益畅行,旅游创业新模式的创新与发展

旅游创业的时代背景与旅游卡的崛起&#xff0c;在当今快节奏的时代&#xff0c;旅行成为人们生活中的重要部分&#xff0c;随着科技发展和市场需求的变化&#xff0c;旅游创业项目中的旅游卡应运而生。 其中&#xff0c;“千益畅行” 旅游卡作为新兴力量&#xff0c;在共享经济…...

单调栈day54|42. 接雨水(高频面试题)、84. 柱状图中最大的矩形、两道题思维导图的汇总与对比

单调栈day54|42. 接雨水&#xff08;高频面试题&#xff09;、84. 柱状图中最大的矩形、两道题思维导图的汇总与对比 42. 接雨水84. 柱状图中最大的矩形两道题思维导图的汇总与对比 42. 接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱…...

关于Excel将列号由字母改为数字

将Excel的列表由字母改为数字 步骤&#xff1a; 文件-选项-公式-勾选“使用公式”中的“R1C1引用样式(R)”-确定即可 部分步骤图示 设置前的样子 设置后的样子 虽然现在还不清楚在xlwings操作Excel时有什么作用&#xff0c;先留着吧。...

曾黎第二次受邀巴黎时装周看秀 为新疆棉代言引人瞩目

近日&#xff0c;演员曾黎受邀出席巴黎时装周Stella McCartney 2025春夏大秀&#xff0c;她身穿品牌25早春“超季”新装登场&#xff0c;干练的摩登蓝色西服&#xff0c;自信优雅&#xff0c;温婉大气&#xff0c;手提链条黑包上面绑着的一朵新疆棉花十分抢眼&#xff0c;成为全…...

No.6 笔记 | Linux操作系统基础:全面概览与核心要点

1. 简介与历史 1.1 起源 创始人&#xff1a;Linus Torvalds&#xff08;芬兰赫尔辛基大学学生&#xff09;初衷&#xff1a;设计一个替代Minix的全功能Unix操作系统首次发布&#xff1a;1991年10月5日&#xff0c;Linux v0.01版本 2. Linux特点 多用户多任务&#xff1a;用…...

MySQL之分库分表后带来的“副作用”你是怎么解决的?

目录标题 一、垂直分表后带来的隐患二、水平分表后带来的问题1.多表联查问题2.增删改数据问题3.聚合操作问题 三、垂直分库后产生的问题1.跨库join问题2.分布式事务问题3.部分业务库依然存在的性能问题 四、水平分库后需要解决的问题1.聚合操作和连表问题2.数据分页问题3.ID主键…...

【Python】Python-JOSE:Python 中的 JSON Web Token 处理库

Python-JOSE 是一个用于处理 JSON Web Token (JWT) 和 JOSE (JSON Object Signing and Encryption) 标准的 Python 库。它支持对 JWT 进行签名、加密、解密和验证等操作&#xff0c;是处理基于 OAuth 2.0 和 OpenID Connect 协议的身份验证和授权任务的理想选择。Python-JOSE 实…...

SpringBoot3+Druid YAML配置

背景 Druid连接池是阿里巴巴开源的数据库连接池项目。Druid连接池为监控而生&#xff0c;内置强大的监控功能&#xff0c;监控特性不影响性能。功能强大&#xff0c;能防SQL注入&#xff0c;内置Loging能诊断Hack应用行为。现在已经SpringBoot3&#xff0c;Druid的配置也需要随…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1&#xff09;准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2&#xff09;服务端安装软件&#xff1a;bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...