当前位置: 首页 > news >正文

Linux——命令行文件的管理(创建,复制,删除,移动文件,硬链接与软链接)

目录

一、创建文件和目录

二、复制文件和目录

三、删除文件和目录

四、移动文件和目录

五、硬链接和软链接(软链接也指符号链接)

索引节点(inode)

硬链接

软链接(符号链接)


一、创建文件和目录

       mkdir命令可以创建一个或多个目录和子目录,使用要创建目录的路径作为参数

       如果要创建的文件父目录不存在,mkdir命令将显示创建失败,此时可以使用-p选项,-p选项可以级联的的去创建一个文件,补全创建目标位置缺少的父目录(如下图代码演示)

二、复制文件和目录

     cp命令可复制文件,并在当前目录或其他指定目录中创建一个文件,cp命令可以将多个文件复制到一个目录中,此时的最后一个参数必须是目录,当目标目录中的文件与要复制的文件同名时,要复制的文件则会覆盖目标目录中和同名文件。

三、删除文件和目录

rm命令可删除文件,但一般不会删除目录,要想删除目录则要加上-r选项

 rm命令加上-i选项可以以交互式的方式删除文件,rm命令加上-f则是强制删除而不提示用户进行确认

也可以使用rmdir命令删除空目录,使用rm命令-r选项删除非空目录。 

四、移动文件和目录

mv命令可将文件从一个位置移动到另一个位置,如果将文件的绝对路径看作它的全名,那么移动文件实际上和重命名文件一样。文件的内容保持不变。

上述代码将test1文件在Music目录中重命名为test2

 上述代码将test2文件从Music目录下移到Pictures目录下

五、硬链接和软链接(软链接也指符号链接)

       在介绍硬链接和软链接之前,我们先引入索引节点的知识,便于更好的区分和理解硬链接和软链接。

索引节点(inode)

      每个文件都有对应的inode,inode存储了文件的元信息,如文件的创建者,文件权限,uid,gid,以及创建时间,文件的大小等等。可以用stat命令查看文件的inode信息

       inode也会消耗硬盘空间,因此,磁盘格式化的时候分为了两个区域,inode区域和数据区域,通过对inode区域的访问我们可以知道文件存储在磁盘上的那个位置,进而知道文件的具体内容(可以将索引节点比作一本书的目录,我们可以根据目录知道文件的基本信息,并找到文件在书中的具体位置进而阅读到文件的具体内容)

        在linux中,打开文件实际上可以分为三个步骤:首先找到文件名对应的inode号码;其次,找到inode号码获取inode信息;最后,根据inode信息找到文件在磁盘上的位置,读出文件数据。

硬链接

       在linux中,一个文件只会有一个索引节点,所谓的硬链接便是一个文件的多个文件名,即多个不同的文件名所指向的内容使相同的,它们实际上是一个索引节点(类似与一个人有多种外号,小原子,原原,原子,虽然名字不同,但都是指向同一个人),只占据一个硬盘区域。

       使用ls -l 的命令加选项可以查看一个文件的硬链接数目

使用ln命令可以创建硬链接,ln命令需要两个参数:现有文件的路径和要创建硬链接的路径

       如上图所示,文件text1和文件pro.2文件的硬链接数目都是2,并且它们有着相同的索引节点

硬链接的局限性:

       由于硬链接只是创建了一个文件名,并没有占用新的硬盘空间,因此,创建硬链接只能在同一个文件系统下面进行。

        其次,硬链接只能用于常规文件,不能用于目录(当在子目录中创建了父目录的硬链接时会造成循环)或者特殊文件,一般目录都会有两个硬链接("."和"..",即当前目录和它的父目录)

df -i 命令查看inode的总量和剩余量

df -h命令查看磁盘的使用量

软链接(符号链接)

       软链接就相当于一个快捷键,它会创建一个新的索引节点,单独占据一块磁盘区域,新创建的软链接所存储的内容其实是你要访问的源文件的路径,因此新创建的软链接指向的文件内容为要访问的文件内容。所以本质上软链接创建的文件内容(实质为要访问文件的路径)和索引节点与源文件的内容和索引节点是不同的。

       相较于硬链接,软链接可以指向目录和特殊文件,软链接也可以跨文件系统创建。

       可以使用ln命令加-s选项创建软链接

上图创建了指向a目录的软链接c

上图查看各文件的索引节点

      如上三个图,c是一个指向a目录的软链接,但是a与c的索引节点不同,删除c中的目录b的同时a中的目录b也被删除了,这说明a,c指向内容相同,且任意改变其中一个的内容另一个也会随之改变。


http://www.mrgr.cn/news/16391.html

相关文章:

  • JUC-JAVA内存模型
  • Java面试题真题·技术面试题部分总结
  • 平台介绍-机构、岗位、人员基础数据
  • 有宠物用哪个牌子的宠物空气净化器,希喂、IAM哪个更值得推荐
  • 【3D目标检测】MMdetection3d——nuScenes数据集训练BEVFusion
  • ubuntu24下python3.9安装pytorch
  • 和星辰为伴,与代码共舞
  • 【Centos】yum 安装软件失败时,切换 Aliyun 镜像源
  • 【Kubernetes部署篇】二进制搭建K8s高可用集群1.26.15版本
  • 5.11 飞行控制——定点飞行
  • 深入详解 C# 中的 Task.Run 与 Thread 的区别与联系
  • sicp每日一题[1.39]
  • 自建一款开源音乐服务-Navidrome
  • [YM]课设-C#-WebApi-Vue-员工管理系统 (五)登录
  • 二叉树的相关oj题目 — java实现
  • 最短路算法详解(Dijkstra 算法,Bellman-Ford 算法,Floyd-Warshall 算法)
  • 黄力医生谈健康:掌握这几个秘诀,帮你远离冠心病困扰!
  • Java技术栈 —— Spark入门(三)之实时视频流
  • 算法训练第28天|509. 斐波那契数|70. 爬楼梯|746. 使用最小花费爬楼梯
  • 蜂鸣器奏乐