Linux基础入门 --5 DAY

移动和重命名文件

        mv命令可以实现文件或目录的移动或改名

        同一分区移动数据,速度快:数据位置未变化

        不同分区移动数据,速度相对较慢,数据位置发生了变化

        格式:

mv [OPTION]... [-T]  SOURCE DEST

mv [OPTION]... SOURCE... DIRECTORY

mv [OPTION]... -t DIRECTORY  SOURCE...

        常用选项:

        -i 交互式

        -f 强制

        -b 目标存在,覆盖前先备份

        利用rename可以批量修改文件名

        格式:

rename [options]  <expression> <replacement> <file>... 

        范例:

[root@localhost ~]# ls
file10.conf  file1.conf  file2.conf  file3.conf  file4.conf  file5.conf  file6.conf  file7.conf  file8.conf  file9.conf
[root@localhost ~]# rename conf conf.bak f*
[root@localhost ~]# ls
file10.conf.bak  file1.conf.bak  file2.conf.bak  file3.conf.bak  file4.conf.bak  file5.conf.bak  file6.conf.bak  file7.conf.bak  file8.conf.bak  file9.conf.bak 

删除文件 

        使用rm命令可以删除文件

        格式:

rm [OPTION]... FILE...

        常用选项:

        -i 交互式

        -f 强制删除

        -r 递归

        --no-preserve-root 删除/

        范例:

[root@localhost ~]# rm -rf /* 

[root@localhost ~]# rm -rf .[^.]*

        rm虽然删除了文件,但是被删除的文件仍然可能被恢复,在安全较高的要求下,可以使用shred安全删除文件

shred格式:

shred [OPTION]... FILE... 

常见选项:

-z 最后一次覆盖添加0,以隐藏覆盖操作.

-v 能够显示操作进度

-u 覆盖和截断并删除文件

-n # 指定覆盖文件内容次数(默认是三次) 

示例:

[root@localhost ~]# shred -zvun 5 passwd 
shred: passwd: pass 1/6 (random)...
shred: passwd: pass 2/6 (ffffff)...
shred: passwd: pass 3/6 (random)...
shred: passwd: pass 4/6 (000000)...
shred: passwd: pass 5/6 (random)...
shred: passwd: pass 6/6 (000000)...
shred: passwd: removing
shred: passwd: renamed to 000000
shred: 000000: renamed to 00000
shred: 00000: renamed to 0000
shred: 0000: renamed to 000
shred: 000: renamed to 00
shred: 00: renamed to 0
shred: passwd: removed

目录操作 

        显示目录树tree

        常见选项:

-d : 只显示目录

-L level : 指定显示的层级数目

-P pattern : 只显示由指定wild-card pattern匹配到的路径

·       创建目录 mkdir

        常见选项:

-p : 存在于不报错,且可自动创建所需各目录

-v : 显示详细信息

-m MODE : 创建目录时指定权限

        删除目录 rmdir 

        常见选项:

-p : 递归删除父目录

-v : 显示详细信息

注意:rmdir 只能删除空目录

查看磁盘空间以及节点

df -ih     // -i 查看节点

        示例:

[root@localhost ~]# df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
devtmpfs        222782    424  222358    1% /dev
tmpfs           232878      2  232876    1% /dev/shm
tmpfs           232878    829  232049    1% /run
tmpfs           232878     16  232862    1% /sys/fs/cgroup
/dev/sda3      9283072 153738 9129334    2% /
/dev/sda1       153600    341  153259    1% /boot
tmpfs           232878      1  232877    1% /run/user/0
[root@localhost ~]# df -ih
Filesystem     Inodes IUsed IFree IUse% Mounted on
devtmpfs         218K   424  218K    1% /dev
tmpfs            228K     2  228K    1% /dev/shm
tmpfs            228K   829  227K    1% /run
tmpfs            228K    16  228K    1% /sys/fs/cgroup
/dev/sda3        8.9M  151K  8.8M    2% /
/dev/sda1        150K   341  150K    1% /boot
tmpfs            228K     1  228K    1% /run/user/0 

Inode节点 

一、inode的定义与作用

  • 定义:inode是“index node”的缩写,中文译名为索引节点或i节点。它是文件系统中的一种数据结构,用于存储文件的元数据(metadata),即除了文件名以外的所有文件信息。
  • 作用:inode节点主要用于存放文件和目录的基本信息,如文件的字节数、文件拥有者的User ID、文件的Group ID、文件的时间戳(ctime、mtime、atime)、链接数(有多少文件名指向这个inode)以及文件数据块(block)的位置等。这些信息使得系统能够高效地管理和访问文件。

二、inode的结构与内容

  • 结构:inode是文件系统的核心数据结构之一,它并不直接存储文件名,而是与文件名通过目录项(dentry)进行关联。每个inode都有一个唯一的编号(inode number),系统通过这个编号来识别不同的文件。
  • 内容:inode包含的主要信息有文件的类型(普通文件、目录、字符设备等)、大小、创建和修改时间、权限、链接数(有多少文件名指向这个inode)、数据块位置等。

三、inode与文件名的关系

  • 在Linux系统中,文件名和inode号码是“一一对应”的关系(在大多数情况下)。然而,Linux也允许多个文件名指向同一个inode号码,这种情况被称为“硬链接”。硬链接使得一个文件可以拥有多个有效路径名,从而提高了文件的灵活性和安全性。
  • 另一方面,文件名只是inode号码的“别名”或“绰号”,系统内部实际上是通过inode号码来识别文件的。因此,即使文件名被删除或更改,只要inode号码和文件数据仍然存在,文件就可以被访问和恢复。

四、inode的消耗与限制

  • 消耗:inode也会消耗硬盘空间。在硬盘格式化时,操作系统会自动将硬盘分成两个区域:一个是数据区(用于存放文件数据),另一个是inode区(用于存放inode信息)。每个inode节点的大小通常是固定的(如128字节或256字节),而inode节点的总数在格式化时就已给定。
  • 限制:由于inode节点的总数是有限的,因此有可能出现inode已经用光但硬盘还未存满的情况。这时就无法在硬盘上创建新文件或目录了。为了避免这种情况的发生,可以通过调整文件系统格式化时的inode设置来合理分配inode节点的数量。

五、inode的查看与管理

  • 查看:可以使用ls -i命令查看某个文件或目录的inode号码和文件名。此外还可以使用stat命令查看文件的详细inode信息。
  • 管理:虽然用户通常不需要直接管理inode节点,但在一些特殊情况下(如inode节点耗尽时)可能需要通过调整文件系统参数或清理无用的文件来释放inode节点。

硬链接和软连接 

一、ln命令的基本语法

bash

ln [选项]... [-T] 目标 链接名

ln [选项]... 目标... 目录

ln [选项]... 目标... 链接目录

其中,目标是被链接的文件或目录的路径名,链接名是新链接的名称(可选,如果不指定,则默认使用目标的文件名作为链接名)。

二、硬链接(Hard Link)

1. 定义

硬链接是指多个文件名指向同一个物理存储位置的文件副本。换句话说,它们共享相同的inode(索引节点)和数据块。

2. 特点

硬链接与原文件不可分割,删除原文件或任何一个硬链接都不会影响其他硬链接的访问。

只有当所有关联到该inode的引用都被删除时,文件才会被真正删除。

硬链接不能跨文件系统创建,也不能用于目录的链接。

硬链接的数量通常受到系统限制(如inode表的大小)。

3. 示例

bash

ln original.txt hard_link.txt

这个命令会创建一个名为hard_link.txt的硬链接,指向original.txt。此时,对original.txt或hard_link.txt的修改都会影响到另一个文件,因为它们实际上是同一个文件的两种访问方式。

三、软链接(Symbolic Link)

1. 定义

软链接是一个特殊类型的文件,其中包含了指向另一个文件或目录的路径信息。它类似于Windows中的快捷方式或Mac OS中的别名。

2. 特点

软链接拥有自己的inode,并且其内容是目标文件的路径名。

软链接可以跨文件系统创建,也可以指向目录。

如果删除了软链接指向的原始文件,软链接将失效(即无法访问原始文件),但软链接本身仍然存在。

软链接的数量只受限于磁盘空间。

3. 示例

bash

ln -s original.txt soft_link.txt

这个命令会创建一个名为soft_link.txt的软链接,指向original.txt。此时,通过soft_link.txt可以访问original.txt的内容,但如果删除了original.txt,则soft_link.txt将无法访问任何内容(除非重新创建或更改soft_link.txt的指向)。

四、常用选项

-s:创建软链接。

-f:强制执行,覆盖现有文件。

-i:如果文件存在,提示用户确认是否覆盖文件。

-n:不创建链接,仅显示将要创建的链接信息(通常与-v选项一起使用)。

-v:详细模式,显示链接创建的过程。

硬链接和软链接的区别 

一、本质定义

  • 硬链接:硬链接是同一个文件的不同入口点或别名。多个文件名可以指向同一个文件的物理数据块(inode),这些文件名可以在同一目录或不同目录中。硬链接和源文件是同一文件的不同表现形式,它们共享相同的inode号。
  • 软链接:软链接(符号链接)是一种特殊类型的文件,它包含了另一个文件的路径名。当访问软链接时,系统会读取链接文件中存储的路径,并跳转到该路径指向的文件或目录。软链接可以链接到任意文件或目录,包括不同文件系统的文件。

二、工作原理

  • 硬链接:硬链接直接通过inode号访问文件数据,不需要通过文件名解析路径。因此,删除或重命名文件的一个硬链接不会影响其他硬链接的访问。
  • 软链接:软链接通过存储的路径名访问目标文件或目录。如果目标文件被删除或移动,软链接将失效,成为“死链接”。

三、对源文件的影响

  • 硬链接:由于硬链接和源文件是同一文件的多个入口点,删除源文件(即删除所有硬链接中的一个)并不会影响其他硬链接的访问,也不会删除文件的数据。只有当最后一个硬链接被删除时,文件的数据才会被真正删除。
  • 软链接:删除软链接所指向的源文件后,软链接将失效。虽然软链接文件本身仍然存在,但无法访问到原文件的内容。

四、可链接的对象

  • 硬链接:只能对文件创建硬链接,不能对目录创建硬链接(在某些操作系统或文件系统中可能有所不同,但大多数情况下是如此)。
  • 软链接:可以对文件或目录创建软链接,且可以跨越不同的文件系统。

五、其他区别

  • 空间占用:硬链接不占用额外的磁盘空间,因为它们是同一文件的不同入口点。而软链接作为一个特殊文件,需要占用少量的磁盘空间来存储路径名。
  • 文件类型:在Linux中,使用ls -l命令查看文件属性时,硬链接与普通文件在显示上没有区别(除了链接数可能不同),而软链接则会以l开头,并显示链接到的目标路径。

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安红豆.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值