Linux文件管理和IO重定向知识总结

news2025/1/20 14:59:04

目录

一,文件管理

Linux的目录结构是一个树状结构:

文件的分类:

操作文件的常用命令:

文件元数据和节点和inode表结构:

特点:

创建文件:

查看文件inode号:

cp和inode:

rm和inode:

mv和inode:

软硬连接:

硬连接:

软连接:

二,IO重定向

1,标准输入输出

查看:

演示: 

查看:

 演示:

2, 重定向

标准输出重定向: 

标准输入重定向:

3,管道


一,文件管理

Linux的目录结构是一个树状结构:

文件的分类:

符号文件类型
-普通文件
d目录文件
l连接文件
c字符文件
b块设备文件
s套接字文件
p管道文件

操作文件的常用命令:

文件元数据和节点和inode表结构:

特点:
1,在 Linux 系统中,一切皆文件, 每个文件,又分为文件元数据和具体内容两部份
2, 一个文件元数据和其具体内容数据,在磁盘分区上,是分开存放的。
3, 这种存储文件元数据的区域就叫 inode,中文译作 " 索引节点 ", 每个文件都有一个 inode n(n>=1) block 数据块, inode 存储文件元数据,数据块存储文件内容 数据。
创建文件:

在linux中创建文件时会为文件分配一个inode号,并且分配一些block。但是一个inode对应多少blocks则由系统决定。所以,创建文件是否能成功由inode和内除决定内存够但是创建文件不成功可能是inode号不足,inode号足够但创建文件不成功可能是因为内存不够。

查看inode号和内存用量:

df -i
查看文件inode号:
ls -i filename
cp和inode:
cp 命令:
分配一个空闲的 inode 号,在 inode 表中生成新条目
在目录中创建一个目录项,将名称与 inode 编号关联
拷贝数据生成新的文件
rm和inode:
rm 命令:
链接数递减,从而释放的 inode 号可以被重用
把数据块放在空闲列表中
删除目录项
数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖
mv和inode:
如果 mv 命令的目标和源在相同的文件系统,作为 mv 命令
用新的文件名创建对应新的目录项
删除旧目录条目对应的旧的文件名
不影响 inode 表(除时间戳)或磁盘上的数据位置:没有数据被移动!

软硬连接:

硬连接:

硬连接相当于让原文件的inode号有了多个别名。如下图所示:

创建硬连接:

ln filename1 filename2 //创建一个指向filename1的硬连接filename2

 演示:

查看inode号:inode号相同

 

软连接:

软连接相当于让原来的文件名多了一个别名。

创建软连接:

ln -s file1 file3 //为file创建一个软连接file3

 演示:

inode号:不一样

二,IO重定向

1,标准输入输出

在linux中由三个最基本的IO文件:标准输入,标准输出,标准错误输出

查看:
ll /dev/std*
演示: 

在虚拟终端中,标准输入输出都是当前窗口

查看:
ll /proc/self/fd/ //显示fd对应的硬件 

tty //显示当前窗口
 演示:

2, 重定向

将输入和输出转移到别的文件中,不在当前窗口显示。

标准输出重定向: ​​​​​​​

#覆盖操作符,如果文件存在,会被覆盖

> #把STDOUT重定向到文件

1>     #同上

2> #把STDERR重定向到文件

&> #把标准输出和错误都重定向

>& #和上面功能一样,建议使用上面方式

#追加操作符,在原有文件的基础上追加内容

>> #追加标准输出重定向至文件

1>> #同上

2>> #追加标准错误重定向至文件

标准输入重定向:

<  #标准输入重定向

<<终止词 #标准多行输入重定向

cmd <<< "string"#高级输入重定向

3,管道

能将输出变为另一个文件或者指令的输入。有些文件不支持管道,但是可以在中间加入参数:xargs来当中间人转换

 

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

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

相关文章

揭秘Matplotlib等高线图:让数据‘高山流水‘间,笑点与深度并存!

1. 引言 在这个数据如山的时代&#xff0c;你是不是也曾在茫茫数海中迷失方向&#xff0c;渴望找到那片隐藏的“数据绿洲”&#xff1f;别怕&#xff0c;今天咱们就来聊聊Matplotlib这位绘图界的魔术师&#xff0c;特别是它那令人叹为观止的等高线图技能。想象一下&#xff0c…

领域模型(Domain Model)

前言 软件的核心是其为用户解决领域相关的问题的能力。所有其他特性&#xff0c;不管有多么重要&#xff0c;都要服务于这个基本目的。当领域很复杂时&#xff0c;这是一项艰巨的任务&#xff0c;要求高水平技术人员的共同努力。开发人员必须钻研领域以获取业务知识。他们必须…

拉刀基础知识——拉刀的种类

如前面所说&#xff1a;近期要围绕拉削和拉刀这个话题&#xff0c;分享一些相关的内容&#xff0c;从最基础的知识开始&#xff0c;为此还专门买了本旧书——《拉刀设计》入门学习。废话不多说&#xff0c;直接开始。 拉刀最早由冲头演变而来&#xff0c;用于加工方孔&#xf…

【Web】TFCCTF 2024 部分题解

目录 GREETINGS SURFING SAFE_CONTENT FLASK DESTROYER GREETINGS 打express的SSTI GitHub - TheWation/NodeJsSSTI: Express app with Pug templates demonstrating SSTI vulnerability and secure implementation for educational purposes. payload: /result?user…

历史标签如何时间迁移?

本文解析的论文是&#xff1a; Lin, C.; Du, P.; Samat, A.; Li, E.; Wang, X.; Xia, J. Automatic Updating of Land Cover Maps in Rapidly Urbanizing Regions by Relational Knowledge Transferring from GlobeLand30. Remote Sens. 2019, 11, 1397. https://doi.org/10.33…

一刷代码随想录(动态规划2)

62.不同路径 题意&#xff1a; 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少…

我的面包多

我的面包多主页&#xff1a;https://mbd.pub/o/author-bGubnGpq 欢迎咨询。

JavaSE面试篇章——一文干破Java集合

文章目录 Java集合——一文干破集合一、集合的理解和好处1.1 数组1.2 集合 二、集合的框架体系三、Collection接口和常用方法3.1 Collection接口实现类的特点3.2 Collection接口遍历元素方式1-使用Iterator(迭代器)3.2.1 基本介绍3.2.2 迭代器的执行原理3.2.3 Iterator接口的方…

数据库典型例题2-ER图转换关系模型

1.question solution: 2.做题步骤 一些解释&#xff1a; <1弱实体把强属性的主键写进去&#xff0c;指向强属性。eg:E6_A13指向E5_A13 <21:1&#xff0c;1:n&#xff0c;m:n&#xff1a;将完全参与的一方&#xff08;双线&#xff09;指向另一方&#xff0c;并将对方的…

AutoCAD ObjectArx二次开发(三) 创建MFC界面

主题&#xff1a;本章节主要介绍在ObjectARX项目中如何使用MFC界面进行交互操作&#xff0c;具体采用模态对话框的形式。 一、创建MFC的对话框 在项目中添加新项&#xff0c;选择MFC类&#xff0c;点击确定按钮&#xff0c;如下图所示。 然后会出现下图界面&#xff0c;填写类…

苹果应用程序清理卸载工具:App Cleaner Uninstaller Pro for Mac

App Cleaner & Uninstaller Pro 是一款专为 Mac OS X 操作系统设计的应用程序清理和卸载工具。这款软件的主要功能是帮助用户彻底删除不需要的应用程序、插件和残留文件&#xff0c;从而释放磁盘空间并提高系统性能。 特点和优势&#xff1a; 彻底卸载应用程序&#xff1a;…

【软件设计书】详细设计说明书和概要设计说明书(Word原件直接套用)

系统详细设计说明书案例&#xff08;直接套用&#xff09; 1.系统总体设计 2.性能设计 3.系统功能模块详细设计 4.数据库设计 5.接口设计 6.系统出错处理设计 7.系统处理规定 软件开发全文档下载&#xff08;下面链接或者本文末个人名片直接获取)&#xff1a;本文末个人名片直接…

【C语言】文件操作(下)

文章目录 前言1. 文件的读和写2. 文件的顺序读写2.1 顺序读写函数的介绍2.1.1 fgetc 和 fputc2.1.2 fgets 和 fputs 3. 文件缓冲区4. 总结 前言 在之前文件操作&#xff08;上&#xff09;和文件操作&#xff08;中&#xff09;的文章中&#xff0c;我从为什么要使用文件再到文…

RabbitMQ高级特性 - 生产者消息确认机制

文章目录 生产者消息确认机制概述confirm 代码实现return 代码实现 生产者消息确认机制 概述 为了保证信息 从生产者 发送到 队列&#xff0c;因此引入了生产者的消息确认机制. RabbitMQ 提供了两种解决方案&#xff1a; 通过事务机制实现.通过发送确认机制&#xff08;confi…

CPU利用率100%该怎么办

1 节拍率 Linux 作为一个多任务操作系统&#xff0c;将每个 CPU 的时间划分为很短的时间片&#xff0c;再通过调度器轮流分配给各个任务使用&#xff0c;因此造成多任务同时运行的错觉。 为了维护 CPU 时间&#xff0c;Linux 通过事先定义的节拍率&#xff08;内核中表示为 H…

AI大模型定级体系

前言&#xff1a;一直以来人们对通用人工智能&#xff08;AGI&#xff09;的定义始终缺乏一个具体的衡量标准&#xff0c;而现在OpenAI已创建了一套分级系统。 AI大模型定级 OpenAI对于其大模型的定级有一个独特的分级体系&#xff0c;旨在描述其人工智能系统的发展阶段以及距…

网络安全埋头干活,也要抬头看路

24年的Hvv大家干的正是热火朝天&#xff0c;也有的干的无可奈何&#xff0c;确实Hvv的核心其实是在Hvv前的准备阶段&#xff0c;Hvv中可能更多的是盯监控。 7月份我也出了两趟差&#xff0c;看了一下在Hvv项目上的小伙伴&#xff0c;30%的时间是在处理误报&#xff0c;60%的时…

51 for 循环与 while 循环

Python 主要有 for 循环和 while 循环两种形式的循环结构&#xff0c;多个循环可以嵌套使用&#xff0c;并且还经常和选择结构嵌套使用来实现复杂的业务逻辑。 while 循环一般用于循环次数难以提前确定的情况&#xff0c;当然也可以用于循环次数确定的情况。 for 循环一般用于…

共享`pexlinux`数据文件的网络服务

实验环境准备&#xff1a; 1.红帽7主机 2.要全图形安装 3.配置网络为手动&#xff0c;配置网络可用 4.关闭vmware DHCP功能 一、kickstart自动安装脚本制作 1.安装图形化生成kickstart自动脚本安装工具 2.启动图形制作工具 3.图形配置脚本 这里使用的共享方式是http&#xff0…

SpringBoot + Vue + ElementUI 的人力资源管理系统-附项目源码与配套文档

摘 要 在如今这个人才需求量大的时代&#xff0c;各方企业为了永葆企业的活力与生机&#xff0c;在不断开 拓进取的同时&#xff0c;又广泛纳用人才&#xff0c;为企业的长久发展奠定了基础。于是&#xff0c;各个企业与部 门机构&#xff0c;都不可避免地会接触到人力资源管理…