当前位置: 首页 > 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…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

Go语言多线程问题

打印零与奇偶数&#xff08;leetcode 1116&#xff09; 方法1&#xff1a;使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

WPF八大法则:告别模态窗口卡顿

⚙️ 核心问题&#xff1a;阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程&#xff0c;导致后续逻辑无法执行&#xff1a; var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题&#xff1a…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋

随着工业以太网的发展&#xff0c;其高效、便捷、协议开放、易于冗余等诸多优点&#xff0c;被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口&#xff0c;具有实时性、开放性&#xff0c;使用TCP/IP和IT标准&#xff0c;符合基于工业以太网的…...