Linux从命令行管理文件

news2025/1/25 4:46:28

目录

一、创建链接文件

二、目录操作命令

1. 创建目录(make directory)

2. 统计目录及文件的空间占用情况

3. 删除目录文件

三、创建、删除普通文件


文件命名规则:

        (1)不能使用/来当文件名,/是用来做根的,也是用来做路径分隔符的

        (2)文件名不能超过255个字符

        (3)区分大小写file File FILE fIle

        (4)目录也是文件,在同一路径下,两个不同类型的文件不能同名

一、创建链接文件

符号链接又叫软连接,和原文件不是同一个文件,例如Windows的快捷方式,如果原始文件被删除,所有指向它的符号链接也就被破坏了。软连接有自己的node,是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径。符号链接可以跨越文件系统,也可以为目录建立。

创建软连接文件:ln   -s   原文件   目标文件

硬链接,只能引用同一个文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为inode)。当移动或者删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。

创建硬链接:ln   原文件   目标文件

[root@localhost ~]# ln -s /etc/hostname /root/hostname
[root@localhost ~]# ll -i /etc/hostname /root/hostname
34288363 -rw-r--r--. 1 root root 22 Oct 22 21:09 /etc/hostname
67989484 lrwxrwxrwx. 1 root root 13 Apr 11 11:25 /root/hostname -> /etc/hostname

[root@localhost ~]# ln /etc/motd /root/motd
[root@localhost ~]# ll -i /etc/motd /root/motd
33854496 -rw-r--r--. 3 root root 99 Oct 22 21:28 /etc/motd
33854496 -rw-r--r--. 3 root root 99 Oct 22 21:28 /root/motd

二、目录操作命令

1. 创建目录(make directory)

语法为:mkdir [-p] [/路径]目录名

        -p:可快速创建出目录结构中指定的每个目录,对于已存在的目录不会被覆盖

        -v:显示创建目录的详细过程

2. 统计目录及文件的空间占用情况

功能:查看某个目录中的各级子目录所占用的磁盘空间数。

命令格式:du   [选项]   [目录名]

选项功能
-a统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
-s只统计每个文件所占用空间总的大小,而不是统计每个子目录、文件的大小
-h以K,M,G为单位显示磁盘使用情况,以提高信息的可读性

3. 删除目录文件

语法格式:rm   -r   [-f]   目录文件名

三、创建、删除普通文件

创建普通文件:touch   [OPTION]...   FILE...

touch的两种用法:

  • 如果文件已存在,更新文件的三个时间,stat可以查看文件的详细信息
[root@localhost ~]# stat /etc/hostname
  File: /etc/hostname
  Size: 22              Blocks: 8          IO Block: 4096   regular file
Device: 10303h/66307d   Inode: 34288363    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:hostname_etc_t:s0
Access: 2023-04-11 08:31:09.860415940 +0800
Modify: 2022-10-22 21:09:16.176024761 +0800
Change: 2022-10-22 21:09:16.176024761 +0800
 Birth: 2022-10-22 21:04:13.785007377 +0800

atime,即access time,查看了一下文件内容(cat),文件的atime时间会更新

mtime,即modify time,文件内容被改变了,ctime会更新

ctime,即change time,元数据【文件的属性,例如大小、文件名等等】被改变,mtime会更新

[root@localhost ~]# touch /etc/hostname
[root@localhost ~]# date
Wed Apr 12 00:57:14 CST 2023
[root@localhost ~]# stat /etc/hostname
  File: /etc/hostname
  Size: 22              Blocks: 8          IO Block: 4096   regular file
Device: 10303h/66307d   Inode: 34288363    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:hostname_etc_t:s0
Access: 2023-04-12 00:57:10.509578017 +0800
Modify: 2023-04-12 00:57:10.509578017 +0800
Change: 2023-04-12 00:57:10.509578017 +0800
 Birth: 2022-10-22 21:04:13.785007377 +0800

[root@localhost ~]# hostnamectl set-hostname server
[root@localhost ~]# cat /etc/hostname
server
[root@localhost ~]# stat /etc/hostname
  File: /etc/hostname
  Size: 7               Blocks: 8          IO Block: 4096   regular file
Device: 10303h/66307d   Inode: 35050464    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:hostname_etc_t:s0
Access: 2023-04-12 00:57:53.551422520 +0800
Modify: 2023-04-12 00:57:45.519354732 +0800
Change: 2023-04-12 00:57:45.519354732 +0800
 Birth: 2023-04-12 00:57:45.519354732 +0800
  • 如果文件不存在,则表示创建文件

        创建多个普通文件:

                方法一:touch   文件名1   文件名2   文件名3

                方法二:touch   {文件名1,文件名2,文件名3}

[root@localhost ~]# touch {1,2}{3,4}
[root@localhost ~]# touch abc{1..100}

删除普通文件:rm   [-f]   文件名

四、数据流与重定向

1. 数据流

  • 标准输入(standard input,简称stdin):默认情况下,标准输入指从键盘获取的输入。
  • 标准输出(standard output,简称stdout):默认情况下,命令执行所回传正确的信息会输出到屏幕上。
  • 标准错误输出(standard error output,简称stderr):默认情况下,标准错误输出可理解为命令执行失败后,所回传的错误信息会输出到屏幕上。

不管正确或者错误的数据都是默认输出到屏幕上,所以屏幕是混乱的。所以就需要用数据流重定向将这两条数据分开。数据流重定向可以将标准输出和标准错误输出分别传送到其它的文件或设备中去,而分别传送所用的特殊字符如下表示:

  • 标准输入(stdin):代码为0
  • 标准输出(stdout):代码为1
  • 标准错误输出(stderr):代码为2

NumberChannel nameDescriptionDefault connectionUsage
0stdinStandard inputKeyboardread only
1stdoutStandard outputTerminalwrite only
2stderrStandard errorTerminalwrite only
3+filenameOther filesnoneread and/or write

 2. 重定向操作符

重定向操作符可以将命令输入和输出数据流从默认设备重定向到其它位置。重定向操作符本身不是命令,而是命令中附加的可改变命令的输入和输出对象的特殊符号。

  • 输出重定向操作符:>、>>
  • 输入重定向操作符:<、<<
使用形式功能
命令 > 文件        或        命令 1> 文件将命令执行后的标准输出信息不在默认的屏幕上显示,而是以覆盖的方式写入到指定文件中,若指定的文件不存在,则自动创建该文件
命令 2> 文件将命令执行后所产生的错误信息不在默认的屏幕上显示,而是以覆盖的方式写入到指定的文件中,若指定的文件不存在,则自动创建该文件
命令 2> /dev/null将命令执行后所产生的错误信息不在默认的屏幕上显示,而是写入到空设备文件中,即将输出的错误信息丢弃掉
命令 &> 文件        或        命令 >& 文件将命令执行后的正确输出信息和错误信息不在默认的屏幕上显示,而是以覆盖的方式写入到指定文件中,若指定的文件不存在,则自动创建该文件
命令 >> 文件将命令执行后的正确输出信息以追加的方式写入到指定的文件中,不覆盖原文件内容,若指定的文件不存在,则自动创建该文件
命令 <文件使命令从指定的文件中读取数据作为输入
命令 <<结束标识字符串在命令行读取数据作为输入,直到遇到指定的结束标识字符串

 3. 输出重定向案例

标准输出重定向:1>或>、1>>或>>

标准错误输出重定向:2>、2>>

案例1:输出重定向(覆盖)

[root@localhost ~]# date 1> date.txt

案例2: 输出重定向(追加)

[root@localhost ~]# date >> date.txt

案例3:错误输出重定向

[root@localhost ~]# ls /home/ /aaaaaa >list.txt
ls:无法访问/aaaaaa:没有那个文件或目录
[root@localhost ~]# ls /home/ /aaaaaa >list.txt 2>error.txt    #重定向到不同的位置

案例4:正确和错误都输入到相同位置

[root@localhost ~]# ls /home/ /aaaaaa &>list.txt
#混合输出

案例5:正确和错误都输入到相同位置

[root@localhost ~]# ls /home/ /aaaaaa >list.txt 2>&1
#重定向到相同的位置

案例6:重定向到空设备/dev/null

#空设备,即将产生的输出丢掉
[root@localhost ~]# ls /home/ /aaaaaa >list.txt 2>/dev/null
[root@localhost ~]# ls /home/ /aaaaaa &>/dev/null

4. 输入重定向案例

标准输入重定向:<或0<、0<<或<<

案例1:从文件读取数据作为cat命令的输入

[root@localhost ~]# echo test > file
[root@localhost ~]# cat < file
test

案例2:标准输入重定向<<并不表示追加,而是表示输入结束的意思,即作为一个结束符

[root@localhost ~]# cat > file3 << end
\> hello
\> end
#利用<<右侧的控制字符,我们可以终止输入,不必输入ctrl+d来结束

[root@localhost ~]# cat file3
hello

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

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

相关文章

【WCH】CH32F203软件I2C驱动SSD1306 OLED

【WCH】CH32F203软件I2C驱动SSD1306 OLED&#x1f4cc;相关篇《【WCH】CH32F203硬件I2C驱动SSD1306 OLED》&#x1f4fa;驱动显示效果&#xff1a; &#x1f33f;OLED屏幕&#xff1a;i2c ssd1306 oled&#x1f516;驱动单片机型号&#xff1a;CH32F203 ✨由于CH32F203主频为96…

wordpress下载插件,安装失败,无法创建目录问题

刚开始安装这个wordpress&#xff0c;在发表文章时候想要在其中加上图片&#xff0c;不想一个个手动上传媒体库&#xff0c;耽误时间&#xff0c;然后就去下了个imagepaste这个复制粘贴的插件&#xff0c;当我打开安装插件搜索到的时候准备安装&#xff0c;尼玛出现“安装失败&…

若一个单词被拆分成多少token, word_ids得到的序号是相同的?还是序号累加的?

目录 问题描述&#xff1a; 问题实现&#xff1a; 方法一&#xff1a; 方法二&#xff1a; 问题描述&#xff1a; 在使用tokenizer进行编码的时候&#xff0c;经常会存在word被拆分成多个token的情况&#xff0c;不同的参数设置&#xff0c;会得到不同的结果。总的来说&…

redis——使用

session缓存缓存更新方式删除缓存vs更新缓存缓存和数据库操作原子性缓存和数据库操作顺序结论缓存问题缓存穿透缓存雪崩缓存击穿全局唯一ID数据并发线程安全单体分布式redis分布式锁的问题redis消息队列listpubsubstream消息推送session 问题&#xff1a;session存在tomcat服务…

【Linux驱动开发】023 platform设备驱动

一、前言 驱动分离目的&#xff1a;提高Linux代码重用性和可移植性。 二、驱动的分隔与分离 百度看了很多&#xff0c;大多都没讲清楚为什么使用platform驱动&#xff0c;为什么驱动分隔与分离可以提高代码重用性&#xff0c;只是在讲实现的结构体、函数接口等等&#xff0c…

npm、pnpm、yarn的常用命令

npm、pnpm、yarn的常用命令 文章目录npm、pnpm、yarn的常用命令一、常用命令1、npm命令2、pnpm命令&#xff1a;3、yarn命令二、对比一、常用命令 1、npm命令 npm init: 初始化一个新的npm包。 npm install: 安装项目依赖项。 npm install : 安装指定的包。 npm install --sa…

【Java数据结构】链表(Linked List)-双向链表

双向链表&#xff08;Linked List&#xff09;是一种常用的数据结构&#xff0c;它允许在所有节点中快速添加或删除元素&#xff0c;并且可以有效地实现反向遍历。本篇文章将介绍双向链表的基础知识&#xff0c;并提供使用Java语言实现该数据结构的示例代码。 一、双向链表的基…

mysql数据库事务脏读、不可重复度、幻读详解

文章目录1 事务隔离级别2 脏读3 不可重复度3.1 解决了脏读的问题。3.2 有不可重复度的问题4 幻读4.1 没有脏读和不可重复读的问题4.2 有幻读的问题5 serializable1 事务隔离级别 read-uncommitted&#xff1a;脏读、不可重复度、幻读&#xff0c;均可出现。安全性低&#xff0…

HBase架构篇 - Hadoop家族的天之骄子HBase

HBase的基本组成结构 表&#xff08;table&#xff09; HBase 的数据存储在表中。表名是一个字符串。表由行和列组成。 行&#xff08;row&#xff09; HBase 的行由行键&#xff08;rowkey&#xff09;和 n 个列&#xff08;column&#xff09;组成。行键没有数据类型&…

《花雕学AI》06:抢先体验ChatGPT的九个国内镜像站之试用与综合评测

最近ChatGPT持续大火&#xff0c;大家们是不是在网上看到各种和ChatGPT有趣聊天的截图&#xff0c;奈何自己实力不够&#xff0c;被网络拒之门外&#xff0c;只能眼馋别人的东西。看别人在体验&#xff0c;看别人玩&#xff0c;肯定不如自己玩一把舒服的啊。 上一期&#xff0…

2.5d风格的游戏模式如何制作

文章目录一、 介绍二、 绘制瓦片地图三、 添加场景物体&#xff0c;添加碰撞器四、 创建玩家五、 创建玩家动画六、 玩家脚本七、 2d转换成2.5d八、 “Q”键向左转动视角、“E”键向右转动视角九、 下载工程文件一、 介绍 制作一个类似饥荒风格的2.5d游戏模板。 2.5D游戏是指以…

Spring之循环依赖

什么事循环依赖 很简单的定义就是就如有两个对象A类&#xff0c;B类&#xff0c;其中两个类中的属性都有对方。 A类 public class A{private B b;}B类 public class B{ private A a; }在Spring中&#xff0c;什么情况下会出现循环依赖 如果要了解循环依赖&#xff0c;首先…

基于matlab进行雷达信号模拟

一、前言此示例说明如何将基本工具箱工作流应用于以下方案&#xff1a;假设有一个工作频率为 4 GHz 的各向同性天线。假设天线位于全局坐标系的原点。有一个目标&#xff0c;其非波动雷达横截面为0.5平方米&#xff0c;最初位于&#xff08;7000&#xff0c;5000&#xff0c;0&…

Linux下使用ClamAV病毒查杀

一、介绍Clam AntiVirus 是一款 UNIX 下开源的 (GPL) 反病毒工具包&#xff0c;专为邮件网关上的电子邮件扫描而设计。该工具包提供了包含灵活且可伸缩的监控程序、命令行扫描程序以及用于自动更新数据库的高级工具在内的大量实用程序。该工具包的核心在于可用于各类场合的反病…

CompletableFuture使用详解(IT枫斗者)

CompletableFuture使用详解 简介 概述 CompletableFuture是对Future的扩展和增强。CompletableFuture实现了Future接口&#xff0c;并在此基础上进行了丰富的扩展&#xff0c;完美弥补了Future的局限性&#xff0c;同时CompletableFuture实现了对任务编排的能力。借助这项能力…

2023最新快速单机创建三主三从Redis集群

单机搭建Redis集群 本次采用Redis的5.0.14版本在单机centos8上搭建Redis三主三从集群. 1.创建6个文件夹 一个文件夹代表一个节点,同时也代表每个节点的端口号. 2.下载Redis文件并解压 使用命令: #下载Redis 可以将5.0.14替换成自己想要的版本 wget http://download.redis…

JavaScript面向对象编程再讲

JavaScript面向对象编程再讲 JavaScript支持的面向对象比较复杂&#xff0c;和其他编程语言又有其独特之处。本文是对以前博文 JavaScript的面向对象编程 https://blog.csdn.net/cnds123/article/details/109763357 补充。 概述 这部分是JavaScript面向对象的概括&#xff0c…

计算机网络微课堂1-3节

目录 1. TCP/TP协议​编辑 2. 3.调制解调器 4.因特网的组成 5.电路交换 6.分组交换 重要常用 7.报文交换 8.总结电路交换 报文交换和分组交换 9. 1. TCP/TP协议 2. ISP 网络提供商 ISP的三层 国际 国家 和本地 3.调制解调器 什么是调制解调器&#xff0c;它存在的…

稳压二极管工作原理、重要参数意义和典型电路参数计算

稳压二极管的工作原理&#xff1a;稳压二极管也叫稳压管&#xff0c;它在电路中一般起到稳定电压的作用&#xff0c;也可以为电路提供基准电压值。稳压二极管使用特殊工艺制造&#xff0c;这种工艺使它在反向击穿时仍然可以长时间稳定工作&#xff0c;不损坏&#xff0c;而工作…

macbook触摸板怎么按右键

苹果MacBook电脑触摸板如何右键&#xff0c;对于初次使用MacBook电脑的朋友&#xff0c;是一个小难题&#xff0c;其实MacBook电脑右键打开快捷辅助菜单的方法很简单。我们在MacBook电脑的【系统设置】—【触控板】中对触控板进行设置后可使用不同方式实现鼠标右键。 方法一&am…