文件操作命令

2023-11-07


计算机对数据的基本操作大多数可以归纳为增删改查,文件操作也不例外。

touch 命令

项目 内容
命令名称 touch
英文原意 change file timestamps
所在路径 /bin/touch
执行权限 所有用户
作用 修改文件的时间戳

命令格式

touch [选项]	 文件名或目录名
选项:
	-a:		只修改文件的访问时间(Access Time)
	-c:		如果文件不存在,则不建立新文件
	-d:		把文件的时间改为指定时间
	-m:		只修改文件的数据修改时间(Modify Time)

Linux中的每个文件都有三个时间,分别是访问时间(Access Time)、数据修改时间(Modify Time)和状态修改时间(Change Time)。这三个时间可以通过 stat 命令查看。touch命令只能手工指定是只修改访问时间或者数据修改时间,不能指定只修改状态时间。因为前两者的改变都会影响后者。
注意,并没有文件创建时间!

  • 三种时间的含义
    读取文件内容 ------> 改变Acess Time
    写文件内容 -------> 改变Modify Time and Change Time
    只修改文件状态 -------> 改变Change Time

常用用法

  • 创建空文件
    在这里插入图片描述
  • 文件存在也不会报错,只是三个时间都会变为touch命令执行的时间
    在这里插入图片描述

stat命令

项目 内容
命令名称 stat
英文原意 display file or file system status
所在路径 /usr/bin/stat
执行权限 所有用户
作用 显示文件或文件系统的详细信息

命令格式

stat [选项] 文件名或目录名
选项:
	-f:		查看文件所在的文件系统的信息,而不是查看文件的信息

常用用法

  • 查看文件的详细信息
    在这里插入图片描述
  • 查看文件系统时间
    在这里插入图片描述

cat命令

项目 内容
命令名称 cat
英文原意 concatenate files and print on the standard output
所在路径 /bin/cat
执行权限 所有用户
作用 合并文件并打印输出到标准输出

命令格式

cat [选项] 文件名
选项:
	-A:		相当于-vET选项的集合,用于列出所有的隐藏符号
	-E:		列出每行结尾的回车符$
	-n:		显示行号
	-T:		把Tab键用^T显示出来
	-v:		列出特殊字符

常用用法

cat命令会将文件的所有内容一次性显示出来。
cat不适合查看太大的文件。

  • 查看文件内容
    在这里插入图片描述
  • 加选项
    在这里插入图片描述
  • 将标准输入写入文件
    在这里插入图片描述

more命令

项目 内容
命令名称 more
英文原意 file perusal filter for crt viewin
所在路径 /bin/more
执行权限 所有用户
作用 分屏显示文件内容

命令格式

more 文件名

文件过大,cat命令会有心无力,这是more命令的作用更加明显。
more命令比较简单,一般不用什么选项,命令会打开一个交互界面,可以识别一些命令。常用的交互命令如下:

  • space:向下翻页
  • b:向上翻页
  • Enter:向下滚动一行
  • /字符串:搜索指定的字符串
  • q:退出

常用用法

  • 分屏显示
    在这里插入图片描述

less命令

项目 内容
命令名称 less
英文原意 opposite of more
所在路径 /usr/bin/less
执行权限 所有用户
作用 分行显示文件内容

命令格式

less 文件名

可以使用more的交互命令,也可以使用上下箭头。

常用用法

  • 与more类似

head命令

项目 内容
命令名称 head
英文原意 output the first part of files
所在路径 /usr/bin/head
执行权限 所有用户
作用 显示文件开头内容

命令格式

head [选项] 文件名
选项:
	-n 行数:	从文件头开始,显示指定行数
	-v:			显示文件名

常用用法

  • head默认显示文件开头的10行内容
    在这里插入图片描述
  • 使用-n
    在这里插入图片描述

tail命令

项目 内容
命令名称 tail
英文原意 output the last part of files
所在路径 /usr/bin/tail
执行权限 所有用户
作用 显示文件结尾内容

命令格式

tail [选项] 文件名
选项:
	-n 行数:	从文件结尾开始,显示指定行数
	-f:			监听文件的新增内容

常用用法

  • 不加选项与-n选项与head类似
  • 监听文件新增内容
    **在这里插入图片描述**

ln命令

项目 内容
命令名称 ln
英文原意 make links between file
所在路径 /bin/ln
执行权限 所有用户
作用 在文件之间建立链接

命令格式

ln [选项] 源文件 目标文件
选项:
	-s:		建立软链接文件。如果不加-s则建立硬链接文件
	-f:		强制。如果目标文件已经存在,则删除目标文件后再建立链接文件

若想理解此命令的用法,需先了解Linux文件系统是如何工作的。我们以现在主流的ext4为例,加以说明。

  • ext4文件系统
    ext4会把分区主要分为两个部分(暂时不提超级快):一小部分用于保存inode信息;剩余的大部分用于保存block信息。
    inode默认大小128Byte,用来记录文件的权限、文件的所有者和属组、文件大小、文件时间戳、文件的数据真正保存的block编号。
    block的大小可以使1KB、2KB、4KB,默认4KB。block用于实际的数据存储,如果一个block放不下数据,可以占用多个block。这些block可能连续,也可能分散。
  • 注意,软链接文件的源文件必须写成绝对路径,而不能写成相对路径(硬链接没有这样的要求);否则软链接会报错。

常用用法

  • 硬链接
    先建立一个硬链接:
    在这里插入图片描述
    观察源文件和链接文件:
    在这里插入图片描述
    我们发现,两者几乎所有信息都相同,甚至inode号都相同,其原理如下:
    在inode信息中,是不会记录文件名称的,而是把文件名称记录在上级目录的block中。也就是说,目录block中记录的是这个目录下所有的一级子文件和子目录的文件名和inode的对应;而文件的block中记录的才是文件的实际数据。当我们查找一个文件,比如/home/shz1/hello.c,需要经历如下步骤:
    a. 首先找到根目录的inode(根目录的inode是已知的,是2),然后判断用户是否有权限访问根目录的block。
    b. 如果有权限,则可以在根目录的block中找到/home的文件名以及对应的inode。
    c. 通过/home的inode号,找到/home的inode信息,接着判断用户是否有权限访问/home的block。

    最终找到访问到/home/shz1/hello.c的block,这样就完成了该文件的读取与访问。
    显然,对于硬链接目标文件和源文件,实际上指的是同一个inode和block。
    硬链接的限制比较多,不能跨文件系统,也不能链接目录,而且源文件和硬链接文件除了inode号是一样,没有其他明显特征。这些特征使得硬链接并不常用。
  • 软链接
    软链接也叫符号链接,相比硬链接,软链接常用很多,其实就相当于windows的快捷方式。再次注意,软链接源文件必须用绝对路径!否则报错。
    在这里插入图片描述
    软链接标志明显,首先,权限为中 “l” 表示这是一个软连接文件;其次,在文件中通过 “->” 显示出源文件的完整名字。
    软链接并没有太多限制,可以跨文件系统,也可以链接目录。
    软链接block保存的并非文件内容,而是链接文件的inode号,通过该inode,读取inode信息,读取源文件block,读取文件内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

文件操作命令 的相关文章

随机推荐

  • mysql对表列数和行大小的限制

    列计数限制 MySQL对于每个表具有4096个列的硬限制 但给定表的有效最大值可能较少 精确的列限制取决于几个因素 表的最大行大小限制列的数量 可能是大小 因为所有列的总长度不能超过此大小 请参阅行大小限制 单个列的存储要求限制了适合给定最
  • Spring对Cache的支持

    从3 1开始 Spring引入了对Cache的支持 其使用方法和原理都类似于Spring对事务管理的支持 Spring Cache是作用在方法上的 其核心思想是这样的 当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存放在缓
  • 数据仓库之ODS层设计概要

    ODS层辨析 ODS全称是Operational Data Store 即操作数据存储 Inmon VS Kimball Bill Inmon的定义 ODS是一个面向主题的 集成的 可变的 当前的细节数据集合 用于支持企业对于即时性的 操作
  • 《超市订单管理系统》-SSM框架的学习与应用(Spring + Spring MVC + MyBatis)-Java EE企业级应用开发学习记录(第十二天)三个框架的整合,进行Web项目开发

    超市订单管理系统 SSM框架的学习与应用 Spring Spring MVC MyBatis Java EE企业级应用开发学习记录 第十二天 三个框架的整合 进行Web项目开发 其实我们昨天的项目也已经初步整合的三个框架 只差最后一步就是对
  • SBC 功能与部署

    SBC是IMS网络边缘用于实现IP接入 互通和安全保护的网元 存在于接入网络与IMS网络之间或不同IMS网络之间 是用户接入IMS的入口点 SBC作为B2BUA将用户和IMS核心网进行隔离 SBC的主要功能包括 注册管理功能 NAT穿越功能
  • 软件测试实验

    文章目录 软件测试实验 实验一 单元测试JUnit4基础 基础知识 实验内容 实验二 单元测试JUnit4进阶 实验三 Selenium功能测试 了解Selenium自动化测试工具 实验内容 实验四 Selenium WebDrive功能测
  • 局域网搜索-秒搜神器:everything 如果打造etp服务器,并且在本地可以双击打开

    起因 最近要经常到公司2000G的硬盘寻找数据 利用Windows自带的局域网共享搜索 速度非常缓慢 方案 就想到利用秒搜工具everything来做局域网工具 网页模式的很简单就不说了 这里说的是映射到本地硬盘的模式 步骤 主要是在服务器
  • Laravel_migrate 之后报Field 'is_active' doesn't have a default value

    例如 首先保证mysql的版本大于5 7 因为json是5 7之后支持的 找到database php 把strict设置为false
  • Uncaught SyntaxError: Unexpected identifier错误的解决方法

    在js中出现下面的错误 Uncaught SyntaxError Unexpected identifier可能的原因是 1 有可能是字符串类型的 但是并没有加双引号 2 有的是没有加逗号 仔细检查便好 3 如果是jsp的话仔细检查下js中
  • C#知识系列:程序不包含适合于入口点的静态“Main”方法

    参考 不包含适合于入口点的静态 Main 方法
  • 趣谈操作系统原理,存储管理之页式、段式、段页式存储

    一 概述 非连续分配管理方式允许一个程序分散地装入到不相邻的内存分区 根据分区的大小是否固定分为分页式存储管理方式和分段式存储管理方式 分页存储管理方式中 又根据运行作业时是否要把作业的所有页面都装入内存才能运行分为基本分页式存储管理方式和
  • centos 7 安装mariadb(转)

    一 检测本机是否已安装mariadb 或者MySQL rpm qa grep mariadb rpm qa grep mysql 下面是我的结果 因为我已经安装过了 二 如果检测到有类似的安装包 建议先全部删除 重新安装 否则会有一些配置被
  • CodeForces - 6B

    题目链接 import java util Scanner public class Main public static void main String args Scanner sc new Scanner System in int
  • 计算机网络复习资料

    选择与填空 概述 从通信双方信息交互的方式来看 通信有三种基本的方式 分别是单向通信 双向交替通信 和 双向同时通信 如果收发两端之间的传输距离为 10km 信号在媒体上的传输速率为 2 105km s 数据长度为 1000B 数据发送速率
  • @Param注解的用法

    1 概述 首先明确这个注解是为SQL语句中参数赋值而服务的 Param的作用就是给参数命名 比如在mapper里面某方法A int id 当添加注解后A Param userId int id 也就是说外部想要取出传入的id值 只需要取它的
  • 【思科、华为、华三这三大认证,选哪个考最好?】

    说起考证 大多数网络工程师心里都要抖上一抖 对于没考证的网工来说 一听就头痛 怎么谁都有了 就自己没有 对于考了证的网工来说 一听也头痛 怎么这刚考了一个 其他同事考了三个 今天我主要想和你聊的是 思科 华为 华三这三大认证的前景分析 以及
  • 下面一段代码竟然引起反复打开的时候IE进程挂起

    var lchs close window onunload function if lchs fresh if window screenLeft gt 10000 logout else logout window onbeforeun
  • vscode中如何让结果显示在弹出cmd框中

    1 首先修改配置文件launch json终端的 externalConsole true 这个必须为true 注意 后面不能带逗号 2 执行的时候按F6 按F5的时候还是一样显示在旁边的终端窗口中 但是 按F6就会显示在弹出的cmd窗口中
  • 什么叫工作?

    当时公司招了大批应届本科和研究生毕业的新新人类 平均年龄25岁 那个新的助理 是经过多次面试后 我亲自招回来的一个女孩 名牌大学本科毕业 聪明 性格活泼 私下里我得承认 我招她的一个很重要的原因 除了她在大学里优秀的表现之外 还因为她写了一
  • 文件操作命令

    文章目录 touch 命令 命令格式 常用用法 stat命令 命令格式 常用用法 cat命令 命令格式 常用用法 more命令 命令格式 常用用法 less命令 命令格式 常用用法 head命令 命令格式 常用用法 tail命令 命令格式