Linux文件与内容查阅、归档压缩

news2024/10/6 10:38:44

#Linux系统基础在这里插入图片描述

文件与内容查找、归档压缩

find命令搜索文件

grep对文件的内容进行搜索

tar命令进行文件的压缩与解压缩

一、文件的查找

格式实例:find . -name "123.txt"说明
find起始目录查找类型查找条件
./ 或 .-name“123.txt”在当前目录中查找哦名为123.txt的文件或文件夹
*代表任意字符串/opt/-name“pass*”在opt目录下查找以pass开头的文件和文件夹
[ ]或,里面的任何一个都要匹配./ 或 .-name“[h]*”在当前文件夹内查找以h开头的 文件、文件夹 | 可以不用
| 代表 或(加上大括号是代表单个字符的或).-name“[h|f]*”在当前文件夹内查找以h或f开头的
(字符串1 | 字符串2 )用圆括号是字符串的或
.-name“[a-z]*”在当前文件夹内查找以小写字母开头的
.-name“[A-Z]*”找大写字母开头的
.-name“[0-9]*”找数字开头的(0-9开头的)
^表示非.-name“[ ^ A-Z]*”注意^的两边没有空格,表示不是以A-Z开头的
?代表单个任意字符.-name“h?llo*”找第1个是h第2个是任意字符,后面是llo开头的
.-name‘\\’查找包含特殊字符 \ 的文件,注意用单引号,这里需要两个\,第一个是转义符,表示后面那个\是一个字符
find.-perm777查找权限为rwx rwx rwx的文件
find . -path "./test" -prune -o -name "hello"查找当前目录中,除了test目录的其他所有目录中,包含hello的文件夹或文件
.-usermary查找所有者为mary的文件或文件夹
.-groupdev查找属于dev组的文件或文件夹
.-mtime-3查找最近3天内更新过的文件或文件夹
.-mtime+3查找3天前更新过的问文件或文件夹
.-newer123.txt查找比123.txt新的文件夹
.! -newer123.txt查找比123.txt旧的文件
.-typed查找当前目录下的所有文件夹.
d:目录,I:软连接文件,f:普通文件(文本文件、可执行文件等),c:字符设备(终端、磁带机等),b:块设备(光盘、硬盘等)
.-size602c查找当前目录下文件大小为602字节的文件
c:byte,k,M,G
.-size+602c查找大于602字节的文件
.-name “hello*”-exec ls -l {} ;查找当前目录下所有以hello开头的文件,并将其细节显示出来,如果查找出了目录,那么注意会被ls -l显示出来
.-name “hello*”-exec rm {} ;查找当前目录下所有以hello开头的文件并将其删除
.-name “hello*”| xargs ls -l查找当前目录下所有以hello开头的文件并将其细节显示出来,| 称之为管道,前面的输出就是后面的输入

二、命令执行内容的查找过滤

功能项命令说明
grepgrep “root” /etc/passwd查找 /etc/passwd文件中包含root的行
grep -n “root” /etc/passwd查找 /etc/passwd文件中包含root的行,并输出行号
grep “^ma” /etc/passwd查找 /etc/passwd文件中 以 ma 为 首 的行
grep “ma$” /etc/passwd查找 /etc/passwd文件中 以 ma 为 尾 的行
grep “1” /etc/passwd查找 /etc/passwd文件中 以 r或d 为 首的行
grep -v “内容”排除包含“内容”的行
ls | grep test从ls的输出中过滤出包含test的文件名
grep -r games /etc在/etc 目录下(包括所有子目录)查找所有包含games的文件
统计ls /var/log | grep log | wc -l显示在/var/log 中,名字有log的文件数量有几个
wcwc-l-l:行数;-c比特数;-w字数;如果不指定参数则统计所有信息

xargs命令

find . -name “*” | xargs grep word 遍历某个目录下所有的文件中包含word的文件

  • xargs(英文全拼: extended arguments)是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。

  • xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。

  • xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。

  • xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。

  • xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。

三、文件内容的查找

  • cat 由第一行开始显示文件内容
  • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
  • nl 显示的时候,顺道输出行号!
  • more 一页一页的显示文件内容
  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
  • head 只看头几行
  • tail 只看尾巴几行
  • od 以二进制的方式读取文件内容!

1.直接查阅文件内容

可以使用cat/tac/nl 这几个指令

1.cat(concatenate)
选项与参数:
-A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字符 $ 显示出来;
-n :打印出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符

范例一:检阅 /etc/issue 这个文件的内容
cat /etc/issue
范例二:承上题,如果还要加印行号
cat -n /etc/issue
范例三:将 /etc/man_db.conf 的内容完整的显示出来(包含特殊字符)
cat -A /etc/man_db.conf
2.tac (反向列示)

与cat命令完全相反,文件的内容会从最后一行开始反向输出到屏幕

3.nl (添加行号打印)
nl 【选项参数】/文件路径/文件名
选项与参数:
-b :指定行号指定的方式,主要有两种:
 -b a :表示不论是否为空行,也同样列出行号(类似 cat -n)-b t :如果有空行,空的那一行不要列出行号(默认值)-n :列出行号表示的方法,主要有三种:
 -n ln :行号在屏幕的最左方显示;
 -n rn :行号在自己字段的最右方显示,且不加 0 ;
 -n rz :行号在自己字段的最右方显示,且加 0 ;
-w :行号字段的占用的字符数。

2.可翻页显示内容

1. more (一页一页翻动)
[root@study ~]# more /etc/man_db.conf
#
#
# This file is used by the man-db package to configure the man and cat paths.
# It is also used to provide a manpath for those without one by examining
# their PATH environment variable. For details see the manpath(5) man page.
#
.....(中间省略).....
--More--(28%) <== 重点在这一行喔!你的光标也会在这里等待你的指令
  • 如果文件内容比较多,就会出现上述情况,在最后一行会显示当前文件内容的显示百分比 ,而且在最后一行可以输出命令,进行下一步操作
    • 空格键 (space):代表向下翻一页;
    • Enter :代表向下翻『一行』;
    • /字符串 :代表在这个显示的内容当中,向下搜寻『字符串』这个关键词;【在文件内部查看信息时,搜索关键字也是这样的】
    • :f :立刻显示出文件名以及目前显示的行数;
    • q:代表立刻离开 more ,不再显示该文件内容。
    • b 或 [ctrl]-b:代表往回翻页,不过这动作只对文件有用,管道无用。
    • q:离开
2.less (一页一页翻动)
[root@study ~]# less /etc/man_db.conf
#
#
# This file is used by the man-db package to configure the man and cat paths.
# It is also used to provide a manpath for those without one by examining
# their PATH environment variable. For details see the manpath(5) man page.
#
.....(中间省略).....
: <== 这里可以等待你输入指令!

less 的用法比起 more 又更加的有弹性,在 more 的时候,我们并没有办法向前面翻,只能往后面看,但若使用了 less 时,就可以使用 pageuppagedown 等按键的功能来往前往后翻看文件了,除此之外,在 less 里头可以拥有更多的搜索功能

  • 空格键 :向下翻动一页;
  • [pagedown]:向下翻动一页;
  • [pageup] :向上翻动一页;
  • /字符串 :向下搜寻『字符串』的功能;
  • ?字符串 :向上搜寻『字符串』的功能;
  • n :重复前一个搜寻 (与 / 或 ? 有关!)
  • N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
  • g :前进到这个资料的第一行去;
  • G :前进到这个数据的最后一行去 (注意大小写);
  • q :离开 less 这个程序;

⭐️⭐️ 可以发现,less 使用的画面与环境与 man page 非常的类似,因为 man 这个指令就是呼叫 less 来显示说明文件的内容的

3.局部截取内容

1.head (取出前面几行)
  • 输出指定前几行的内容
head -n [行数] 文件

-n 选项后面的参数较有趣,如果接的是负数,例如上面范例的-n -100 时,代表第100列前的所有行数, 但不包括后面 100 行

2.tail (取出后面几行)
  • 取出最后n行的内容
tail -n [行数] 文件   
范例一:如果不知道/etc/man_db.conf 有几行,却只想列出 100 行以后的数据时?
[root@study ~]# tail -n +100 /etc/man_db.conf
  • 动态探测文件内容
    • 如果某个文件是在动态变化的,比如日志文件,就可以使用该命令,动态监测日志的变化
tail -f 文件

4.阅读非纯文本档: od

由于执行档通常是 binary file ,使用上头提到的指令来读取他的内容时, 确实会产生类似乱码的数据

[root@study ~]# od [-t TYPE] 文件
选项或参数:
-t :后面可以接各种『类型 (TYPE)』的输出,例如:
   a :利用默认的字符来输出;
   c :使用 ASCII 字符来输出
   d[size] :利用十进制(decimal)来输出数据,每个整数占用 size bytes ;
   f[size] :利用浮点数(floating)来输出数据,每个数占用 size bytes ;
   o[size] :利用八进制(octal)来输出数据,每个整数占用 size bytes ;
   x[size] :利用十六进制(hexadecimal)来输出数据,每个整数占用 size bytes ;

范例一:请将/usr/bin/passwd 的内容使用 ASCII 方式来展现!
od -t c /usr/bin/passwd
范例二:请将/etc/issue 这个文件的内容以 8 进位列出储存值与 ASCII 的对照表
od -t oCc /etc/issue

四、修改文件时间或新建文件touch

文件的时间是很重要的,因为,如果文件的时间误判的话,可能会造成某些程序无法顺利的运作

在使用ls -l --time=[参数]命令时,可以显示文件的时间信息,有关时间参数,主要有三种:

  • modification time (mtime)
    当该文件的内容数据变更时,就会更新这个时间!内容数据指的是文件的内容,而不是文件的属性或权限

    在默认的情况下,ls 显示出来的是该文件的 mtime

  • status time (ctime)
    当该文件的==状态 (status)==改变时,就会更新这个时间,例如文件的权限与属性被更改时,都会更新这个时间,

    ⭐️值得注意的是:如果我们复制一个文件,即使是复制文件的所有属性,也没有办法使得ctime不变,应为ctime就是记录文件最新状态的时间属性

  • access time (atime)
    该文件的内容被取用时,就会更新这个读取时间 (access)。举例来说,我们使用 cat 去读取/etc/man_db.conf , 就会更新该文件的 atime 了。

使用touch命令可以修改文件的时间属性,如果命令的对象是一个不存在的文件,则会创建一个以该名字命名的空文件

touch [-acdmt] 文件
选项与参数:
-a :仅修订 access time;
-c :仅修改文件的时间,若该文件不存在则不建立新文件;
-d :后面可以接欲修订的日期而不用目前的日期,也可以使用 --date="日期或时间"
-m :仅修改 mtime ;
-t :后面可以接欲修订的时间而不用目前的时间,格式为[YYYYMMDDhhmm]


范例:将 bashrc 日期改为 2014/06/15 2:02
touch -t 201406150202 bashrc
范例:修bashrc 文件,将日期调整为两天前
touch -d "2 days ago" bashrc

五、文件归档压缩

归档:将多个文件整理为一个文件≠压缩

tar:tape archive磁带档案卷

功能项命令说明
tar 归档tar -cvf hello.tar hello,txt
或者tar -cvf hello.tar /opt/heheda/*
将hello.txt归档为hello.tar文件
-c:创建一个新的文件
v:显示归档过程细节(可以不写,如不写就不会显示归档过程)
f:使用归档文件或 ARCHIVE 设备
tar -tf test.tar将归档文件test.tar 中的文件显示出来
tar -xvf tset.tar提取归档文件中的内容
gzip压缩gzip hello.tar将hello.tar文件进行压缩
gzip -d hello.tar.gz解压缩文件成tar.gz
归档压缩
加-z
tar -zcvf hello.tar.gz hello.txt将hello.txt归档压缩为hello.tar.zip
tar -zxvf hello.tar.gz解压缩hello.tar.gz文件
tar -zxvf 【压缩包文件名.tar.gz】 -C 【路径】解压到指定目录
zip/unzipzip hello.zip hello.txt压缩hello.txt
zip -r test.zip /opt/test递归压缩,将/opt/test目录压缩
unzip -v hello.zip查看压缩文件hello.zip中的文件信息
unzip hello.zip解压缩

  1. r|d ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1836738.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[保姆级教程]uniapp实现页面路由配置

文章目录 新建目录新建页面配置页面路由修改tabBar地址其他&#xff1a;在package.json中的pages配置详细 新建目录 先点击src–》新建–》目录 输入名称&#xff0c;并以此类推完成所有新建目录 新建页面 右击目录&#xff0c;点击新建–》vue文件 弹出弹框&#xff0c;…

“首秀”欧洲杯,海信冰箱欧洲市占率居国产品牌首位

随着欧洲杯的火热开赛&#xff0c;挑灯夜战、观看球赛的时刻已经来临。此时&#xff0c;你需要何物相伴&#xff1f;是打开冰箱&#xff0c;取出真空腌制的食材&#xff0c;亲手烹饪一场观赛盛宴&#xff1f;还是取出极致保鲜的荔枝、樱桃&#xff0c;一边观赛一边品味&#xf…

failed to create network xxxx: Error response from daemon

问题描述&#xff1a; 启动项目时&#xff0c;docker内部网络冲突。 解决方案&#xff1a; 1.删除所有docker容器&#xff08;强制删除一个或多个容器&#xff0c;即使它们正在运行&#xff09; docker rm -f $(docker ps -aq) 2.验证docker容器是否删除成功 docker ps --…

HuggingFace烧钱做了一大批实验,揭示多模态大模型哪些trick真正有效

构建多模态大模型时有很多有效的trick&#xff0c;如采用交叉注意力机制融合图像信息到语言模型中&#xff0c;或直接将图像隐藏状态序列与文本嵌入序列结合输入至语言模型。 但是这些trick为什么有效&#xff0c;其计算效率如何&#xff0c;往往解释得很粗略或者或者缺乏充分…

Centos/Ubuntu等Linux系统下增加扩展4个串口以上配置操作

linux(Ubuntu、centos等&#xff09;标准发行版系统默认是最多识别到4个COM串口设备&#xff0c;超过4个设备的串口则无法识别使用&#xff0c;想要载入使用则需要手动修改下grub配置文件&#xff0c;手动指定即可&#xff01;可以参考如下步骤&#xff0c;有出入的地方大家可以…

Chromium 开发指南2024 Mac篇-安装和配置depot_tools工具(三)

1.引言 在前两篇指南中&#xff0c;我们详细介绍了在 macOS 环境下编译 Chromium 所需的硬件要求和系统依赖&#xff0c;并具体讲解了如何正确安装和配置 Xcode。通过这些步骤&#xff0c;您已经为编译 Chromium 打下了坚实的基础。然而&#xff0c;编译 Chromium 还需要配置一…

pip导出格式错乱问题

pip导出带有各种路径 pip只导出版本 pip list | tail -n 3 | awk {print $1""$2} > requirements.txt

JY-156/1静态电压继电器 板前接线 约瑟JOSEF

JY-150系列电压继电器适用于继电保护线路中&#xff0c;作为过电压保护或低电压闭锁的动作元件。 该产品采用集成电路原理构成&#xff0c;它克服了原来电磁型电压继电器触点易抖动&#xff0c;工作时噪音大&#xff0c;动作值、返回值难调整及运输后动作值易变等缺点&#xff…

STM32学习 时钟树

在单片机中&#xff0c;时钟的概念非常重要&#xff0c;这次记录一下时钟树相关的知识。 STM32的时钟树是由多个时钟源和时钟分频组成的&#xff0c;为STM32芯片提供各种时钟信号。也就是说&#xff0c;在使用STM32的时候&#xff0c;所有的频率和时钟都是通过时钟树产生的。 …

概念描述——TCP/IP模型中的两个重要分界线

TCP/IP模型中的两个重要分界线 协议的层次概念包含了两个也许不太明显的分界线&#xff0c;一个是协议地址分界线&#xff0c;区分出高层与低层寻址操作&#xff1b;另一个是操作系统分界线&#xff0c;它把系统与应用程序区分开来。 高层协议地址界限 当我们看到TCP/P软件的…

5.How Fast Should You Be When Learning?(你应该用多快的速度学习?)

Normally when I talk about learing quickly, I’m using speed as a synonym for efficiency.Use more effective methods and you’ll learn more in less time.All else being equal, that means you’re learing faster. 通常我在谈到快速学习时&#xff0c;是把“速度&qu…

gorm 学习笔记 五:自定义数据类型和枚举

一&#xff1a;Json类型 Info保存到数据库时&#xff0c;通过Value()转化为json&#xff0c;读取出来的时候 json字符串自动转成结构体Info type Info struct {Status string json:"status"Addr string json:"addr"Age int json:"age"…

光纤三维布里渊温度和应变分布matlab模拟与仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 光纤三维布里渊温度和应变分布matlab模拟与仿真。其中 , 布里渊散射是光波与声波在光纤中传播时相互作用而产生的光散射过程 , 在不 同的条件下 , 布里渊散射又分…

【SpringBoot集成Spring Security】

一、前言 Spring Security 和 Apache Shiro 都是安全框架&#xff0c;为Java应用程序提供身份认证和授权。 二者区别 Spring Security&#xff1a;重量级安全框架Apache Shiro&#xff1a;轻量级安全框架 关于shiro的权限认证与授权可参考小编的另外一篇文章 &#xff1a; …

Playwright工作原理

执行test时&#xff0c;有哪些关键步骤 当我们用Playwright编写一段简单的test script&#xff0c;代码如下所示&#xff1a;在test case中第一段代码就是await page.goto(xxxxx) import { test, expect } from playwright/test;test(test, async ({ page }) > {await page…

Python学习笔记12:进阶篇(二),类的继承与组合

类的继承 我们在编写一系列的类的时候&#xff0c;会发现这些类很相似&#xff0c;但是又有各自的特点和行为。在编写这些类的时候&#xff0c;我们可以把相同的部分抽象成一个基类&#xff0c;然后根据其他不同的特点和行为&#xff0c;抽象出子类&#xff0c;继承这个基类。…

安全宣传咨询日活动向媒体投稿记住这个投稿好方法

在信息爆炸的时代,作为单位的信息宣传员,我肩负着将每一次重要活动,特别是像“安全宣传咨询日”这样的公益活动,有效传达给公众的重任。这份工作看似简单,实则充满了挑战,尤其是在我初涉此领域时,那段曲折而又难忘的投稿经历,至今记忆犹新。 初探投稿之海,遭遇重重困难 起初,我…

【ROS1转ROS2示例】

ROS1中的代码&#xff1a; 这是一个循环函数&#xff1a; ros::Rate loop_rate(10); // Adjust the publishing rate as neededwhile (ros::ok()){loop_rate.sleep();} 如果转ROS2&#xff0c;可以使用rclcpp::WallRate或者直接依赖于执行器(Executor)的循环来实现类似的功…

七层和四层的区别

OSI七层模型的结构如下&#xff1a; 物理层&#xff08;Physical Layer&#xff09;&#xff1a;负责传输原始比特流&#xff0c;实现数据在物理媒介上的传输&#xff1b; 数据链路层&#xff08;Data Link Layer&#xff09;&#xff1a;负责在相邻节点之间传输数据帧&#…

Linux操作系统学习:day04

内容来自&#xff1a;Linux介绍 视频推荐&#xff1a;[Linux基础入门教程-linux命令-vim-gcc/g -动态库/静态库 -makefile-gdb调试]( 目录 day0422、通过文字设定法修改用户对文件的操作权限23、通过数字设定法修改文件的权限24、修改文件所有者和所属组25、tree—查看目录内…