首页 > 系统相关 >Linux基础入门 --5 DAY

Linux基础入门 --5 DAY

时间:2024-09-04 13:55:23浏览次数:9  
标签:文件 ... -- DAY shred conf Linux inode 链接

移动和重命名文件

        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开头,并显示链接到的目标路径。

        

标签:文件,...,--,DAY,shred,conf,Linux,inode,链接
From: https://blog.csdn.net/alwtj/article/details/141869959

相关文章

  • Monocle:一款基于LLM的二进制文件自然语言搜索工具
    关于MonocleMonocle是一款基于LLM的二进制文件自然语言搜索工具,该工具由LLM驱动,用于对已编译的目标二进制文件执行自然语言搜索,并查找加密代码、密码字符串和安全缺陷漏等。功能介绍Monocle是一款由大型语言模型支持的工具,用于对已编译的目标二进制文件执行自然语言搜索......
  • C++复习day02
    一、库函数的模拟实现1.memcpy的使用和模拟首先先来了解一下memcpy函数的作用是什么?void*memcpy(void*destination,constvoid*source,size_tnum);函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。这个函数在遇到‘\0......
  • Node.js发票查验接口示例、识别查验接口参数返回
     财务、审计等经常与发票打交道的人员常常会遇到虚假发票、错票、重复报销等一系列问题。对于会计审计、代理记账、电子商务等发票查验量多的企业来说,成千上万张发票如果仅依赖于人工来进行核验,速度慢效率低,准确率也没保障,因此,如何让发票查验工作变得便捷高效,提升发票查验的......
  • 【机器学习-神经网络】循环神经网络
    【作者主页】FrancekChen【专栏介绍】⌈⌈⌈Python机器学习⌋......
  • 历年CSP-J初赛真题解析 | 2017年CSP-J初赛阅读程序(23-26)
    学习C++从娃娃抓起!记录下CSP-J备考学习过程中的题目,记录每一个瞬间。附上汇总贴:历年CSP-J初赛真题解析|汇总_热爱编程的通信人的博客-CSDN博客#include<iostream>usingnamespacestd;intmain(){ intt[256]; strings; inti; cin>>s; for(i=0;i<256;i......
  • CDGA|数据治理:确保数据质量与价值的综合性框架
    在当今的数字化时代,数据已成为企业运营和决策的核心资源。为了确保数据的质量、安全性、合规性和可用性,数据治理成为了企业不可或缺的一部分。数据治理是一个综合性的框架,涵盖了多个方面,旨在最大限度地利用数据资产并降低数据相关的风险。一、数据战略与政策数据治理的首要......
  • 基于Gitlab-CI的容器应用DevOps工作流简单实践
    前言    基于Gitlab,Gitlab-Runner和Gitlab集成的CICD的DevOps工作流部署容器应用到测试或生产环境,可以快速方便的通过代码迭代自动部署到相应环境中,我已经提前准备好了容器内环境的Gitlab和Gitlab-Runner,有需要的同学可以鉴别参考,以及准备好Harbor私有镜像仓用来镜像......
  • 数字人直播阿凡达模式2.0版本揭秘:灰豚运用了哪些黑技术?
    随着数字人直播的应用频率不断提升,其在帮助企业降本增效方面的潜力也随之显现,刺激市场需求的同时,也让用户对它的期待值持续增长。在此背景下数字人源码厂商开始不断加大研发力度,以推动数字人直播技术的持续升级,数字人直播阿凡达模式2.0版本的上线便是典型案例之一。本期,小编......
  • 一个开源、跨平台的.NET UI框架 - Avalonia UI
    前言今天大姚给大家分享一个开源、免费(MITLicense)、跨平台的.NETUI框架:AvaloniaUI。Avalonia是一个成熟稳定的平台,用于构建桌面、嵌入式、移动的和Web应用程序。一个代码库,无限可能!!!项目介绍Avalonia是一个强大的框架,使开发人员能够使用.NET创建跨平台应用程序。它使用自己的......
  • 1. GIS开发工程师岗位职责、技术要求和常见面试题
    本系列文章目录:1.GIS开发工程师岗位职责、技术要求和常见面试题2.GIS数据工程师岗位职责、技术要求和常见面试题3.GIS后端工程师岗位职责、技术要求和常见面试题4.GIS前端工程师岗位职责、技术要求和常见面试题5.GIS工程师岗位职责、技术要求和常见面试题6.GIS......