推广 热搜: page  关键词  数据分析  服务  数据分析系统  搜索  获取  哪些  链接  搜索引擎 

【Linux】软硬链接 文件存储,删除,文件目录管理 (cp、mv、rm、cut、sort、uniq、wc、head、tail、split 、which、whereis、type、find)

   日期:2024-12-30     作者:g5kyl    caijiyuan   评论:0    移动:https://sicmodule.kub2b.com/mobile/news/13644.html
核心提示:目录   一、文件存储   二、硬链接与软链接   硬链接   如何创建硬链接:   硬链接知识小结   软连接   如何创建软

目录

  一、文件存储

  二、硬链接与软链接

  硬链接

  如何创建硬链接

  硬链接知识小结

  软连接

  如何创建软连接

  软连接知识小结

  三、文件删除的原理

  四、文件目录管理命令

  cp命令

  mv 命令

  rm 命令

  find命令

  cut命令

  sort 命令

  uniq 命令

  wc 命令

  head命令  

  tail命令

  split命令

五、文件搜索工具

  字符匹配

  分组及引用

  Linux文件搜索命令

         which命令

          whereis命令

          type命令

          find命令


文件存储

文件储存在硬盘上硬盘的最小存储单位叫做"扇区"(Sector。每个扇区储存512字节(相当于0.5KB)。

操作系统读取硬盘的时候,一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。

什么是inode

储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。

显示文件和文件系统的详细信息

可以用stat命令,查看某个文件的inode信息

文件的时间戳,共有三个

ctime显示的是文件的权限、拥有者、所属的组、链接数发生改变时的时间。当然当内容改变时也会随之改变(即inode内容发生改变和Block内容发生改变时

mtime指文件内容上一次变动的时间

atime指文件最后被访问的时间。

* 链接数,即有多少文件名指向这个inode

 df命令  查看文件系统磁盘空间占用情况

查看每个硬盘分区的inode信息,可以使用df -i命令。

inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域。

一个是数据区,存放文件数据;另一个是inode区(inode table,存放inode所包含的信息。

每个inode节点的大小,一般是128字节或256字节。

inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode。

表面上,用户通过文件名,打开文件。实际上,系统内部这个过程分成三步

首先,系统找到这个文件名对应的inode号码

其次,通过inode号码,获取inode信息

最后,根据inode信息,找到文件数据所在的block,读出数据。

使用ls -i命令,可以看到文件名对应的inode号码

Unix/Linux系统中,目录(directory)也是一种文件。打开目录,实际上就是打开目录文件。

目录文件的结构非常简单,就是一系列目录项(dirent)的列表。

每个目录项,由两部分组成:所包含文件的文件名,以及该文件名对应的inode号码。

df -h命令  以可读性较高的方式来查看磁盘使用情况

源文件与硬链接文件的inode是一样的;硬链接文件与原始文件其实是同一个文件,只不过是不同的名字而已。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。仅删除一个链接并没有影响。

  如何创建硬链接

ln 源文件名 硬链接名 

如果给一个源文件创建了硬链接文件,将硬链接文件移动至其他文件后不小心将源文件删除,然后通过cp命令将硬件文件弄到之前源文件所在地址后,在使用ls -i命令查看inode号,会发现他的inide号改变了,通过mv命令将硬件文件弄到之前源文件所在地址后它的inode号没有变。

改名和移动不会影响inode号,cp命令才会影响。

  硬链接知识小结


软连接的源文件和链接文件的内容一样,inode号不一样;将软连接文件删除,源文件还可以访问,将源文件删除,则不能访问链接文件。

  如何创建软连接

ln -s 源文件名 软连接文件名

  软连接知识小结

内存会被进程占用, 只有当进程被释放时,内存才会被释放


每个文件都有2各link计数器:i_count(内存引用计数器)和i_nlink(磁盘引用计数器

想要彻底删除文件,必须使该文件的i_count和i_nlink都为0

好比一个文件正在被进程调用,而用户却使用rm将文件删除了,这时虽然找不到这个文件了,但是调用该文件的进程仍然在执行,该文件的内存未被释放。 因为rm操作只是将i_nlink数减少了,如果没有其它链接文件那么它的i_nlink数为0,但由于该文件还在被进程引用,所以i_count不为0,系统并没有真正的删除这个文件,想要彻底删除文件,必须使该文件的i_count和i_nlink都为0。

copy 实现文件或目录的拷贝

copy file1 file2 实现文件 file1 的内容拷贝到文件 file2 上,如果文件 file2 已存在则覆盖,不存在则创建


常用参数

  • -i:交互式复制,有文件覆盖的时候提醒用户确认
  • -f:强制覆盖 (相当于复制文件时若有同名的文件则强制覆盖
  • -d:复制符号链接文件本身,而非源文件
  •  -P:保留源文件或者目录的路径
  • -R, -r,  递归拷贝
  • -p  保留源文件的属性权限时间等

可以实现移动文件或重命名

mv 后可以是一个目录也可以是一个文件如果源文件和目标文件在同一目录中,那就是改名。

  • -f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖
  • -i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项
  • -n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户
  • -v:显示文件或目录的移动过程
  • -u:若目标文件已经存在,但两者相比,源文件更新,则会对目标文件进行升级

实现删除文件或目录 

常见参数有

-f, 强制性删除并没有提示

-r, -R,递归删除包含目录下的子目录及文件

-d:删除空文件夹

 find 命令是直接在硬盘中进行搜索的,如果指定的搜索范围过大,find命令就会消耗较大的系统资源,导致服务器压力过大。所以,在使用 find 命令搜索时,不要指定过大的搜索范围。

命令格式

[root@localhost ~]# find 搜索路径 [选项] 搜索内容

例子: 查找/目录下所有以.log 结尾的文件

[root@rsys_server test]# find / -name "*.log

就是在文件中负责剪切数据用的。cut 是以每一行为一个处理对象的


常用参数

  • -d  自定义分割符,如果不定义则使用默认分隔符 tab 键
  • -f   显示指定字段的内容
  • -c 参数指定切割字符数从起始数到截止数(cut -c "1-2" wb 切割wb文件中的前两个字符
  • -b:以字节为单位进行分割

举例

以空格为分割符切割,显示第一个字段内容

以空格为分割符切割,显示第一个字段到第三个字段内容

 显示cut.txt文件中第1个和第3个字符

显示cut.txt文件中第1个到第3个字符

sort 命令用来排序,通常是结合文本处理工具使用

常用参数

-b忽略每行前面的空格字符。-f忽略大小写-M将前面3个字母依照月份的缩写进行排序。-n依照数值的大小排序。-o <输出文件>将排序后的结果存入制定的文件。-r以相反的顺序来排序。-t <分隔字符>指定排序时所用的栏位分隔字符。-k

指定需要排序的栏位

-u相同数据仅出现一行

如下

[root@localhost ~]# sort -k 2 -t "." sort.txt
 AA:BB:CC
 ee:60:5.1
 dd:20:4.2
 cc:50:3.3
 ee:40:5.3
 bb:10:2.4
 aa:30:1.9

(表示按"."分隔开。将第二列从小到大排序。

主要用来实现去除重复行 前提条件是必须是先排序过的文本


常用参数

  • -c:在每行前加出现次数(uniq命令加-c选项可以实现对重复次数进行统计。
  • -d:只输出重复行
  • -i:比较时不区分大小写
  • -u:只显示唯一行
  • -s:跳过
  • -w:忽略

统计文件的字节或者行数等信息


常用参数

  • -c:统计字节数
  • -l:统计行数
  • -L:统计最长行的长度
  • -m:统计字符数
  • -w:统计单词数,以空格为分界点

显示前几行


显示后几行


-f 随着文件自增自动显示最后新增的内容(新增的内容并不会保存到源文件中

分割文档命令


  • -l num :指定分割的行数num行
  • -b :按照每个文件的大小分割 KB MB
  • -d :使用数字做后缀 搭配-a使用 指定数字长度
  • -c :分割的文件单行的最大字节数 byte-

这个博客巨详细

.    匹配任意单个字符(grep 'r..t' /etc/passwd

*    匹配其前面字符任意次;0,1,多次;例如grep "x*y

?  匹配其前面字符0次或1次;(基本正则要加/,扩展正则不用加)

+  匹配其前面字符1次或多次;  

.*   匹配任意多个字符

(使用grep命令即为正则表达式,不适用grep为通配符。

单词:非特殊字符组成的连续字符(字符串)都称为单词

<root    用于单词模式的左侧,类似于以某个单词开头

root>    用于单词模式的左侧,类似于以某个单词结尾

<apple>  用于匹配完整的单词


         which命令

        在$PATH的所有目录里搜索某个系统命令的位置,默认在第一个文件中查找到了就不去其它文件里找到;内部命令也是找不到的(例如:history

        -a   在所有目录里找系统命令

        --skip-alias   只有文件目录没有别名(针对有命令别名的

          whereis命令

        查询命令或程序的帮助手册的位置

        -b   只查找可执行命令

        -m  只查找帮助文件

          type命令

        用来分辨该命令是外部命令还是内部命令(shell builtin)还是别名

          find命令

        功能描述:在目录中查找文件。不仅可以按照文件名搜索文件,还可以按照权限、大小、时间、inode 号等来搜索文件。但是 find 命令是直接在硬盘中进行搜索的,如果指定的搜索范围过大,find命令就会消耗较大的系统资源,导致服务器压力过大。所以,在使用 find 命令搜索时,不要指定过大的搜索范围。

       命令格式:find 搜索路径 [选项] 搜索内容

        常用参数

  1.  -name: 按照文件名搜索
  2.  -iname: 按照文件名搜索,不区分文件名大小
  3.  -inum: 按照 inode 号搜索
  4.  -size[+-]大小:按照指定大小搜索文件(这里的"+"的意思是搜索比指定大小还要大的文件"-" 的意思是搜索比指定大小还要小的文件。
  5. -atime [+-]时间:  在过去 n 天内被读取过的文件
  6. -mtime [+-]时间: 在过去 n 天内修改过的文件
  7.  -ctime [+-]时间:   并不总是代表文件的创建时间。它通常表示文件状态的最后改变时间,这可能包括文件的元数据(如权限、所有权等)的变更。

        这三个时间的区别我们在 stat 命令中已经解释过了,这里用 mtime 数据修改时间来举例,重点说说 "[+-]"时间的含义。

        -5:代表5天内天修改的文件。

         5: 代表前5~6天那一天修改的文件。

        +5: 代表5天前修改的文件。

举例

实例1:ls -l命令放在find命令的-exec选项中 

命令

本文地址:https://sicmodule.kub2b.com/news/13644.html     企库往 https://sicmodule.kub2b.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类最新资讯
0相关评论

文章列表
相关文章
最新动态
推荐图文
最新资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号