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

news2024/9/29 15:25:14

  欢迎来到 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 文件
    功能: 默认查看文件后十行,可以通过增加选项查看指定行数

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

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

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

相关文章

OpenGL3.3_C++_Windows(33)

PBR渲染管线 Physically Based Rendering渲染管线 :使用一种更符合物理学规律的算法模型来模拟光线,由于它与物理性质非常接近,可以直接以物理参数为依据来编写表面材质判断是否基于物理的渲染,有三个数学模型:微平面,能量守恒&a…

Go语言实现支持泛型的二分查找算法

二分查找基本原理图: 参考代码: 泛型的定义: package v2024type Integer interface {int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 }type Float interface {float32 | float64 }type Number interface …

无需变更环境变量,一键管理和运行不同JDK版本的jar包

前言 之前公司的项目一直用的都是JDK8,然后前段时间,公司要求以后的新项目必须要用JDK17及以上的版本。但是以前的旧项目还有很多都在维护。 这样子的话,电脑上就至少有两个版本的JDK了。我想在不变动环境变量的情况下(环境变量…

可穿戴设备与健康科技:迈向个性化医疗的未来

在数字化和智能化浪潮的推动下,可穿戴设备与健康科技正迅速改变我们的健康管理方式。这些设备不仅使我们能够实时监测健康指标,还为个性化医疗提供了宝贵的数据支持。本文将详细探讨可穿戴设备的作用、健康监测技术的发展、个性化医疗的趋势,…

代码随想录——买卖股票的最佳时机含冷冻期(Leetcode 309)

题目链接 动态规划 class Solution {public int maxProfit(int[] prices) {if(prices.length 0 || prices.length 1){return 0;}// 初始化int[][] dp new int[prices.length 1][2];dp[1][0] -prices[0];for(int i 2; i < prices.length; i){dp[i][0] Math.max(dp[…

Arduino PID库 (5):开启或关闭 PID 控制的影响

Arduino PID库 &#xff08;5&#xff09;&#xff1a;开启或关闭 PID 控制的影响 Arduino PID库 &#xff08;4&#xff09;&#xff1a;Reset Windup 问题 尽管拥有一个PID控制器很好&#xff0c;但有时你并不关心它要说什么。 PID On - User Overwritting Output&#x…

安全测试:保护系统免受攻击和数据泄露

目录 前言1. 安全测试的概念2. 安全测试的主要作用2.1 发现安全漏洞2.2 评估风险2.3 确保合规性2.4 提高安全意识 3. 安全测试在整个测试中的地位4. 常用的安全测试工具4.1 渗透测试工具4.1.1 Metasploit4.1.2 Burp Suite 4.2 漏洞扫描工具4.2.1 Nessus4.2.2 OpenVAS 5. 安全测…

通道加密机的定义与功能

通道加密机是一种用于保护数据传输过程中安全性的硬件设备&#xff0c;它通过加密技术确保数据在通道中传输时不被非法截获或篡改。以下是对通道加密机的详细解析&#xff1a; 一、定义与功能 通道加密机是一种专门设计用于加密和解密在特定通信通道上传输的数据的设备。它能够…

【网络安全】|pgp的安装和使用

1、pgp的安装&#xff1a; 参考&#xff1a; https://jingyan.baidu.com/article/86fae346c289173c49121a11.html 实际操作&#xff1a; 在第六步中有不同&#xff0c; 第5步重启后&#xff0c;打开pgp desktop, 可以看到如图&#xff1a; 此时需要做两件事&#xff1a; 1、将…

第35讲:Manager可视化组件管理Ceph集群

Manager可视化组件管理Ceph集群 1.Mgr组件的基本概念 Mgr组件的官方文档&#xff1a;https://docs.ceph.com/en/latest/mgr/ Ceph Manager守护进程 (ceph-mgr) 与Monitor守护进程一起运行&#xff0c;为外部监控和管理系统提供额外的监控和接口。 ceph luminous版本中新增加…

配置阿里云 Maven 仓库地址

阿里云 Maven 仓库地址&#xff1a; maven {// 阿里云 Maven 仓库地址url https://maven.aliyun.com/repository/public} 执行结果&#xff1a;

决策曲线DCA的绘制

今天被要求画一下决策曲线&#xff0c;用Python试了半天也没画出来&#xff0c;最后参考了资料还是用R语言绘制了出来。 数据的格式 将四条曲线画在一张表中 library(rmda) library(readxl)# 读取Excel文件 data <- read_excel("C:/Users/Administrator/Desktop/肺动脉…

09 同步原语 sync包让你对并发控制得心应手

上节课留了一个思考题&#xff1a;channel 为什么是并发安全的呢&#xff1f;是因为 channel 内部使用了互斥锁来保证并发的安全&#xff0c;这节课&#xff0c;我将为你介绍互斥锁的使用。 在 Go 语言中&#xff0c;不仅有 channel 这类比较易用且高级的同步机制&#xff0c;…

MES系统如何精准采集与对接设备数据,全面优化设备管理

一、MES系统如何采集和对接设备数据 MES系统&#xff08;Manufacturing Execution System&#xff0c;制造执行系统&#xff09;采集和对接设备数据主要通过以下几种方式实现&#xff1a; 手工录入&#xff1a; 这是最基础的数据采集方式&#xff0c;通过操作人员在MES系统界…

C++基础知识(入门章)

绪论 历经千辛万苦&#xff0c;我们终于来到了一个全新的板块---C。本期的内容主要是关于C的一些基础知识的初步了解。让我们一起努力&#xff0c;克服编程路上的艰难险阻&#xff0c;迎接属于自己成功的彼岸~ C的发展历史 1979年 C的起源可以追溯到1979年&#xff0c;当时B…

从根儿上学习spring 四 之run方法启动第一段

图1 由上图我们可以看到&#xff0c;我把run方法分成了5个小段&#xff0c;每小段使用红框圈了起来&#xff0c;这一篇我们先开始讲第一段。大家需要关注下行号&#xff0c;我讲的时候可能会使用行号对应具体某行代码。 图1-289-290行&#xff1a; 没啥好说的定义了两个变量&…

【VMware】如何演示使用U盘在VMware虚拟机上安装Windows11

一、前置准备 在开始使用U盘演示在VMware虚拟机上装Windows11前&#xff0c;我们需要做以下前置的准备&#xff1a; 已制作好的Windows引导盘&#xff1b;WMware软件 如何制作Windows引导盘&#xff1f; 推荐参考&#xff1a; 【建议收藏】2024年最新Windows系统重装教程&…

SpringBoot中整合ElasticSearch快速入门

文章目录 Elasticsearch 是什么使用MySQL和ES对比SpringBoot中整合ElasticSearch快速入门Springboot中操作ES测试效果说明 Elasticsearch 是什么 Elasticsearch是一个基于 Apache Lucene 构建的分布式搜索和分析引擎&#xff0c;能够处理大规模数据并提供实时搜索和分析功能。…

简单的docker学习 第8章 docker常用服务安装

第8章 常用服务安装 本章主要学习最常用的&#xff0c;也是安装起来稍有些麻烦的 MySQL 与 Redis 两种服务器的Docker 安装。至于其它服务器的 Docker 安装&#xff0c;大家可自行查找资料。只要 MySQL 与 Redis这两类服务器学会了安装&#xff0c;其它服务器的安装基本也不会…

C#编写多导联扫描式的波形图Demo

本代码调用ZedGraph绘图框架&#xff0c;自己先安装好ZedGraph环境&#xff0c;然后拖一个zedGraphControl控件就行了&#xff0c;直接黏贴下面代码 基本代码显示 using System; using System.Windows.Forms; using ZedGraph; using System.Timers;namespace ECGPlot {public…