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

【Linux】文件变身大作战:Linux下的文件重命名艺术

  欢迎来到 CILMY23 的博客

🏆本篇主题为:文件变身大作战:Linux下的文件重命名艺术

🏆个人主页:CILMY23-CSDN博客

🏆系列专栏:Python | C++ | C语言 | 数据结构与算法 | 贪心算法 | Linux | 算法专题 | 代码训练营

🏆感谢观看,支持的可以给个一键三连,点赞收藏+评论。如果你觉得有帮助,还可以点点关注


 前言:

上期一篇总结系列,我们谈到了重定向的概念,我们还了解了输出重定向,本期就利用输出重定向来伪造一个大文件,并对这个大文件进行各种操作。

我们本期将了解的指令有:

1. mv 指令(⭐)         2. cat 指令 (⭐)         3. more 指令         4.less 指令         5.head 指令         6. tail 指令 


目录

如何伪造一个大文件?

1.mv 指令(⭐) 

2. cat 指令 (⭐)

 tac 指令

 3. more 指令

 4. less 指令

5. head 指令

6. tail 指令 

总结


如何伪造一个大文件?

 我们可以使用以下指令来伪造一个大文件:

i=1; while [ $i -le 100000 ]; do echo "hello ubuntu $i"; let i++;done > big.txt

使用指令 ll 我们可以看到,big.txt具有1888895字节大小。 

 

 这个指令的解析如下:

  1.  i=1: 初始化变量 i 为 1,作为循环计数器。
  2. while [ $i -le 100000 ]; do: 循环条件,当 i 小于等于 100000 时,执行循环体。
  3. echo "hello ubuntu $i": 循环体,每次循环执行以下操作:echo "hello ubuntu $i":将字符串 "hello ubuntu" 和当前 i 的值拼接在一起,并输出到终端。
  4. let i++: 将 i 的值增加 1,准备下一轮循环。
  5. done: 循环结束标志。
  6. > big.txt: 将整个循环的输出重定向到名为 big.txt 的文件中。 

这样我们的文件就伪造好了,接下来我们就开始指令的学习

1.mv 指令(⭐) 

mv 命令是 move 的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录

💫💫指令:mv

💫💫功能:用来移动文件或者将文件改名也可以用来备份文件或者目录

作用1:在指定的目录下,对一个文件或目录进行重命名

我们直接上实操更容易理解,我们现在在桌面的 a 文件夹中。

我们可以看到我们的大文件是 big.txt,现在我想改名字就可以通过 mv 指令 

我们输入

mv big.txt ./a.txt 

就可以发现 big.txt 被重命名成一个 a.txt 文件了。这就跟我们Windows系统中的重命名一样。 

作用2: 将指定目录下的文件或者目录,”剪切“到指定的目录下

我利用相对路径,将指定的文件 aa 移动到了桌面文件夹 aa 中, 我们可以发现我们把 a.txt 文件移动过来的时候,还顺手改了个名字。

 这就是我们 mv 指令的第三个作用:剪切的同时还可以重命名文件

所以 mv 指令的用法很明显了,mv 源文件 指定目录(重命名)

2. cat 指令 (⭐)

cat(“ concatenate ”的缩写)命令是Linux操作系统中常用的命令之一。它可以用来查看文件内容

💫💫指令:cat

💫💫功能:查看目标文件的内容

我们可以在屏幕中输入,cat big.txt ,就可以直接查看目标文件的内容。但是这样不方便看,所以我们就用一个code.c文件进行演示。

 code.cpp文件是我在C++文件中用来验证 vector的扩容机制。

可以看到整个小文件都基本输出在我们的屏幕上。

我们还可以通过附加选项来查看。

比如我们输入 cat -n code.cpp 的时候,我们就可以查看对应的行号。

 那如果我们的文件中,有这么多空余的行,就可以使用 cat -s,使屏幕不打印这些。 

 

 效果如下:

总结:

  1. cat -n 文件 : 对输出的所有行编号 
  2. cat -s 文件 : 不输出多行空行

 cat 还有一种用法:

💫💫用法扩展:cat 回车

💫💫功能:等待用户输入,并且打印到屏幕上

效果如下: 默认从键盘文件读数据,然后输出到显示器文件中。

 

所以 cat 就是把文本内容给我们显示到公屏上,之前的指令,像ls,ll 都是针对文件属性来操作,现在是对文件内容操作,cat适合查看小文件,不适合查看太大的文件,因为大文件,要显示出来太麻烦,所以我们等会就接触了 more 指令和 less 指令。 

 tac 指令

在这里插入一个 tac 指令, tac 是用来逆向查看目标文件的内容

💫💫指令:tac

💫💫功能:逆向查看目标文件的内容

 实操:

但是 tac 没有 -n 这些选项来进行逆向打印。 

 3. more 指令

more 指令的功能类似cat,它可以用来查看大文件内容,也可以用来查看小文件。cat 不擅长查看大文本的原因:是因为每次查看文本内容都会直接跳到内容底部,想从头看起很麻烦。

💫💫指令:more

💫💫功能:查看目标文件的内容

当我们输入 more big.txt 的时候,我们可以使用回车进行上下翻页, 

按回车上下翻页: 

同时也可以使用/999 进行搜索关键字。

所以more命令,功能类似 cat,它可以打满一屏的输出,然后停下来,等待用户下翻进行阅读,但是并不推荐使用 more 命令。   所以就有下一个指令 -- less

 4. less 指令

less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。

💫💫指令:less

💫💫功能:查看目标文件的内容,less与more类似,但使用less可以随意浏览文件,而more仅能向后移动,却不能向前移动,而且less在查看之前不会加载整个文件。

less指令的优势: 

less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻,  只能往后面看 但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。 

实操:

less 指令可以按键盘的上下键来操作,更好用,更方便,推荐使用,这一块大家自己体验就行。 

5. head 指令

 head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然就是看档案的结尾

💫💫指令:head

💫💫功能:查看目标文件的开头内容,用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

实操:

head 默认输出前十行的内容。 

我们可以通过增加选项来输出指定的行数。

6. tail 指令 

tail 命令从指定点开始将文件写到标准输出.

使用tail命令的 -f 选项可以方便的查阅正在改变的日志文件,tail - f filename 会把 filename 里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容. 

💫💫指令:tail

💫💫功能:查看目标文件的末尾内容,用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

实操如下:

这里和head 的指令是一样的,我就不多演示了。 


总结

  1. mv 指令
    操作:mv 源文件 指定目录(重命名)
    功能:mv 指令可以用来重命名文件,相当于Windows系统中的剪切功能,同时可以边剪切,边重命名
  2. cat 指令
    操作: cat 文件
    功能: 用来查看目标文件的内容,更适合用来查看小文件内容。
    扩展用法:
    cat -n :对输出的所有行编号 
    cat -s :不输出多行空行
    cat 回车:默认从键盘文件读数据,然后输出到显示器文件中
  3. tac 指令
    操作: tac 文件
    功能: 用来逆向查看目标文件的内容
  4. more 指令(不推荐)
    操作: more 文件
    功能: 打满一屏的输出,然后停下来,等待用户下翻进行阅读
    补充用法:q 退出 more ,-n 输出编号
  5. less 指令
    操作: less 文件
    功能: 打满一屏的输出,然后停下来,等待用户上下翻进行阅读,同时还支持向上或向下查询
    补充用法:q 退出
  6. head 指令
    操作: head 文件
    功能: 默认查看文件前十行,可以通过增加选项查看指定行数
  7. tail 指令
    操作: tail 文件
    功能: 默认查看文件后十行,可以通过增加选项查看指定行数

 🛎️感谢各位同伴的支持,本期文件篇的指令讲解专题就讲解到这啦,下期我们将进入时间指令篇,如果你觉得写的不错的话,可以给个一键三连,点赞,收藏+评论,可以的话还希望点点关注,若有不足,欢迎各位在评论区讨论。      

相关文章:

【Linux】文件变身大作战:Linux下的文件重命名艺术

欢迎来到 CILMY23 的博客 🏆本篇主题为:文件变身大作战:Linux下的文件重命名艺术 🏆个人主页:CILMY23-CSDN博客 🏆系列专栏:Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux | 算法…...

字节的存储和字符的存储

字节的存储 内存中的存储 基本数据类型: 在Java中,byte 类型占用 1 个字节(8 位)。它的取值范围是从 -128 到 127。存储在内存中的 byte 数据可以直接操作,例如通过数组或变量访问。 数据结构: byte 数组…...

Markdown插入Base64格式的图片,无需图床,稳定保存

Markdown插入Base64格式的图片,无需图床,稳定保存 我是一个Markdown的爱好者,转存图片是MD经常出问题的地方,因为MD不像其他富文本编辑器,将图片内嵌到文件中,而是用链接的形式引用,或网络链接…...

weblogic 连接gaussdb测试数据源是否联通

文章目录 1. gaussdb创建远程连接用户和数据库2. weblogic构建GaussDB源数据库3. 测试结果查询注意 weblogic中jar包已经放入lib目录中gaussdb已经创建可以连接登录的用户和数据库1. gaussdb创建远程连接用户和数据库 新建用户和数据库连接客户端Gauss=# create user lily pas…...

如何成为全域运营商?掌握这2种申请方式就够了!

随着全域概念的兴起,全域运营商的职业前景和收益空间逐渐显现,并迅速成为了热门创业赛道中的一份子,连带着如何成为全域运营商等入局方式相关话题也成为了众多创业者热议的焦点。 不过,从市场现状来看,作为涵盖公域和私…...

@ConfigurationProperties加在方法上

ConfigurationProperties注解通常用于将外部配置文件(如application.properties或application.yml)中的属性映射到Java类中。它通常加在类上,但也可以加在方法上。加在方法上时,通常与Bean注解一起使用,以便将配置属性…...

使用CUBEMX配置的USB大容量存储设备主机库获取LUN数量的不严谨代码纠正

最近在使用usb主机库驱动U盘直接进行扇区读写。 发现MSC库中获取LUN相关代码有问题 代码如下 其中 status USBH_MSC_BOT_REQ_GetMaxLUN(phost, (uint8_t *)(void *)&MSC_Handle->max_lun); MSC_Handle->max_lun (MSC_Handle->max_lun > MAX_SUPPORTED_L…...

合并重叠的区间

这一题不能用差分数组&#xff0c;因为 [1 , 4] [5, 6] 这个就会被合并&#xff0c;正确的做法就是先排序 bool cmp(vector<int> a, vector<int> b) {if (a[0] < b[0]) return 1;if (a[0] b[0]) return a[1] < b[1];return 0; } class Solution { public:ve…...

docker和运维

创建服务 docker service create --name order --network my-net -p 8080:8080 -d xxx 加入swarm集群 docker swarm join --token xxx 更新结点名字为mysql docker node update --label-add servermysql ecs-82ec-0003 创建MySQL服务 docker service create --name mysql --con…...

苍穹外面day13(day10)---订单状态定时处理、来单提醒和客户催单

Spring Task 同学们可以看我这篇文章 Spring Task初学-CSDN博客 订单状态定时处理 新建OrderTask /*** 定时任务类&#xff0c;定时处理订单状态*/ Component Slf4j public class OrderTask {Autowiredprivate OrderMapper orderMapper;/*** 处理超时订单的方法*/Scheduled(c…...

RCE和php文件上传

一、远程命令执行&#xff08;RCE&#xff09; RCE漏洞概述 RCE漏洞允许攻击者通过某种方式在目标服务器上执行任意命令。这种漏洞通常出现在服务器端语言中&#xff0c;如PHP。 RCE漏洞原理 PHP中的一些函数可以执行命令或代码&#xff0c;但如果对这些函数的输入未加限制&a…...

nextjs 实现TodoList网页应用案例

参考&#xff1a; https://nextjs.org/ Next.js 是用于网络的一种 React 框架。一些世界上最大的公司在使用它&#xff0c;它能够借助 React 组件的力量让您创建高质量的网络应用程序。 1、创建项目&#xff1a; 另外注意&#xff1a;pages与app路由存在冲突&#xff0c;如果有…...

U盘格式化了怎么恢复数据?教你U盘恢复妙招

U盘作为便携式存储设备&#xff0c;在我们的日常生活和工作中发挥着重要作用。然而&#xff0c;有时由于操作失误或其他原因&#xff0c;我们可能会格式化U盘&#xff0c;从而导致数据丢失。当遭遇这种情况时&#xff0c;很多人会感到焦虑和困惑。不过&#xff0c;幸运的是&…...

化工厂室内外4G/5G+蓝牙+GPS/北斗RTK人员定位系统解决方案

化工厂是高风险场所&#xff0c;含有大量有毒、易燃、易爆、易腐蚀等化学物品&#xff0c;并且环境复杂、设备繁多&#xff0c;一旦出现人为疏忽或者违规操作很容易引发重大安全事故&#xff0c;因此对化工厂员工、外来访客进行科学合理地管控&#xff0c;提升化工厂管理人员管…...

【知识跨境电商API接口丨python数分实战】国际电商平台用户成交转化分析

今天这篇文章将给大家介绍国际电商平台用户成交转化分析案例。 01 初步思路 问题已经明确 GMV的下降&#xff0c;可能出在用户下单成交环节。 这里需要明确GMV下降是今年与去年相比吗&#xff1f;明确GMV下降到底如何判断出来的&#xff1f;对比的对象是什么&#xff1f;如…...

【SpringBoot】Java对象级联校验

对于Javabean对象中的普通属性字段&#xff0c;我们可以直接使用注解进行数据校验&#xff0c;那如果是关联对象呢&#xff1f;其实也很简单&#xff0c;在属性上添加Valid就可以作为属性对象的内部属性进行验证。 public class User{ Size(min3,max5,message"list的Size在…...

【Redis 进阶】哨兵 Sentinel(重点理解流程和原理)

Redis 的主从复制模式下&#xff0c;一旦主节点由于故障不能提供服务&#xff0c;需要人工进行主从切换&#xff0c;同时大量的客户端需要被通知切换到新的主节点上&#xff0c;对于上了一定规模的应用来说&#xff0c;这种方案是无法接受的&#xff0c;于是 Redis 从 2.8 开始…...

CSS实现元素hover时背景色拉伸渐变

HTML代码 <ul><li><p><a href"#">Facebook搜索</a></p></li><li><p><a href"#">Instagram搜索</a></p></li><li><p><a href"#">Google搜索&…...

Activity收不到bundle值

Activity有四种启动模式&#xff0c;一般为默认。 当Activity的启动模式为singleTask或singleInstance的时候&#xff0c;通过Intent传值&#xff0c;getIntent是接收不到值的&#xff0c;为null。 当Activity的启动模式为singletop的时候&#xff0c;若Activity位于栈顶&…...

ZBrush

所有建模软件最开始需要搞清楚的就是基础操作&#xff0c;如旋转视角&#xff0c;放大缩小&#xff0c;移动等&#xff0c;一般可以看上手教程 zbrush中雕刻很重要的概念是笔刷&#xff1a;ZBrush笔刷介绍-CSDN博客 基本操作 编辑模式&#xff1a;T 清除画布&#xff1a;ctr…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

Python Einops库:深度学习中的张量操作革命

Einops&#xff08;爱因斯坦操作库&#xff09;就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库&#xff0c;用类似自然语言的表达式替代了晦涩的API调用&#xff0c;彻底改变了深度学习工程…...