关于inode是什么,可以看这篇文章:http://www.cnblogs.com/adforce/p/3522433.html

如何查看inode

ll -di /boot / /app
查看文件和文件夹的inode号

df -i
查看挂载点文件夹的inode号


做inode增长实验

创建60万个文件的方法1(效率不高):
for i in {1..600000}; do touch file$1; echo file$i is created;done
创建60万个文件的方法2(效率高):
echo file{1..600000} | touch
删除前20万个文件:echo file{1..200000} |args rm

在创建的过程中,可以另开一个窗口,用下面命令,每隔1秒运行df -hi命令,可以查看inode的增长情况:
watch -n1 df -hi

tips:文件粉碎工具shredshred -uzvn10 FILE重复随机写入10次覆盖源文件,然后最后删除此文件。


硬链接、软链接

软链接就相当于Windows的快捷方式,删掉源文件,快捷方式和就失效了,软链接就找不到源文件了。

硬链接相当于多个链接指向同一份数据存储区域,每多一个硬链接,硬链接数+1,如果一个文件,有n个硬链接,删除n-1个硬链接,源文件还在,直到删除所有硬链接,才会删除源文件。

1. 复制(cp

复制过程中,复制软连接相当于复制了快捷方式,速度很快,而且可以跨分区。

复制过程中,复制硬链接分为两种情形:

  • 同一分区复制,相当于多创建一个链接指向原数据存储位置,速度很快。
  • 不同分区复制,相当于把原来分区的数据拷贝过去存储,同时创建一个指向新数据区域的指针,速度比较慢。

2. 删除(rm
删除过程中,删除软连接相当于删除了快捷方式,源文件还在。
删除过程中,删除硬连接相当于删除了一个到数据块的指针,,除非删除所有硬链接文件,源文件才删除。

3. 移动(mv
移动过程中,移动软连接相当于移动了快捷方式而已。
移动过程中,移动硬连接分为两种情形:

  • 同一分区移动,相当于创建了一个新inode,指向数据块,并把原来的inode删掉
  • 不同分区移动,要把数据块复制到新分区,然后在新分区创建新的inode号指向新的数据块,并且把原来分区的inode号和数据块都删掉。

4. 软连接支持对目录创建,硬链接不支持

ln dir1 dir2不成功

ln /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/ens33成功

tips1:当我们看到一个磁盘,使用空间没满,但是却提示”no space left on device”,那可能是inode用完了。

tips2:如何删除数量很多的文件(比如前面做实验创建的60万个文件。):
技巧是使用管道|xargs,管道|后面会讲,管道是指的是前面命令的输出作为后面命令的输入。xargs,前面命令多个输出,可以用xargs一个个的传给后面的命令,而不是已下载全传给后面命令,可以解决参数太长的情况。

ls | xargs rm

5. 如何写软连接相对路径

软连接写相对路径,要根据软连接文件的路径来写。

例如要在把/etc/issue 软连接到/app/d1/d2/d3/ilink

1
ln -s ../../../../../etc/issue /app/d1/d1/d3/ilink

6. 如何软链接设备文件

设备文件比较特殊,如果要创建设备文件的链接,需要用到mknod命令:

1
2
3
4
5
[root@centos7 etc]# ll /dev/sda
brw-rw----. 1 root disk 8, 0 May 22 09:06 /dev/sda #得到主设备号和复设备号。
mknod /app/sda b 8 0
 
ll -i /dev/sda /app/sda

软链接练习:

  1. 创建一个目录tomcat-8.5.23,创建一个软连接tomcat到这个目录;在创建一个目录tomcat-9.0.1, 把tomcat的软连接指向新的tomcat-9.0.1目录。
1
2
3
ln -sv tomcat-8.5.23 tomcat
rm -rf tomcat
ln -sv tomcat-9.0.1 tomcat
  1. 创建一个目录/mnt/lfs/tools, 然后创建/mnt/lfs/tools的软连接/tools,一般有这样的命令:ln -sv /mnt/lfs/tools /tools,如何可以更短?
1
2
mkdir -v /mnt/lfs/tools
ln -sv /mnt/lfs/tools /

file命令

常用选项:

-b 列出文件辨识结果时,不显示文件名称

-f 列出文件中文件名的文件类型

-F 使用指定分隔符号替换输出文件名后默认的”:”分隔符

-L 查看对应软链接对应文件的文件类型

--help 显示命令在线帮助

file /etc/system-relase

file命令就是查看的文件头部的信息,可以用hexdump查看源文件源码信息 (也可以用xxd命令看)。

如果是二进制文件,会显示二进制的头信息。

如果是文本文件,就直接是文本。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@centos7 ~]# hexdump -C -n 100 /bin/ls
00000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 |.ELF............|
00000010 02 00 3e 00 01 00 00 00 48 4b 40 00 00 00 00 00 |..>.....HK@.....|
00000020 40 00 00 00 00 00 00 00 18 c4 01 00 00 00 00 00 |@...............|
00000030 00 00 00 00 40 00 38 00 09 00 40 00 1e 00 1d 00 |....@.8...@.....|
00000040 06 00 00 00 05 00 00 00 40 00 00 00 00 00 00 00 |........@.......|
00000050 40 00 40 00 00 00 00 00 40 00 40 00 00 00 00 00 |@.@.....@.@.....|
00000060 f8 01 00 00 |....|
00000064
 
[root@centos7 ~]# hexdump -C -n 100 /etc/issue
00000000 5c 53 0a 4b 65 72 6e 65 6c 20 5c 72 20 6f 6e 20 |\S.Kernel \r on |
00000010 61 6e 20 5c 6d 0a |an \m.|
00000016

readlink命令

读取软连接指向的真实路径

1
2
[root❄centos7 ~]☭ readlink /etc/redhat-release
centos-release

inode、软硬链接的更多相关文章

  1. inode block 软硬链接

    inode block 软硬链接 1 inode 1.1 inode(索引节点)作用 (1)用于存储文件数据属性信息(2)用于存储数据指针信息 1.2 如何产生 格式化时,创建文件系统 1.3 如何查 ...

  2. ln 软硬链接

    链接 在谈软链接与硬链接之前,先来说说文件系统基础知识. Linux 系统中,一切皆文件. 文件包含两部分:文件属性与权限(inode),文件内容(data-block). 一个文件可由1个inode ...

  3. Linux中的软硬链接

    说到Linux中的软硬链接,就必须谈一下Linux的文件系统的组成的重要部分iNode和block. 首先是iNode,先用一张图了解一下iNode在Linux文件系统中的地位: Linux中的文件的 ...

  4. 软硬链接、文件删除原理、linux中的三种时间、chkconfig优化

    第1章 软硬链接 1.1 硬链接 1.1.1 含义 多个文件拥有相同的inode号码 硬链接即文件的多个入口 1.1.2 作用 防止你误删除文件 1.1.3 如何创建硬链接 ln 命令,前面是源文件  ...

  5. linux文件属性软硬链接知识

    链接的概念 在linux系统中,链接可分为两种:一种为硬链接,另一种为软链接或符号链接.在默认不带参数的情况下,执行ln命令创建的链接是硬链接. 如果使用ln  -s创建链接则为软链接,前面文件类型为 ...

  6. 文件的软硬链接& 文件编辑vi和vim

    目录 文件的软硬链接 1.软链接 2.硬链接 文件编辑vi和vim 须先安装vim命令的软件包yum install -y vim 三种模式: 1.普通模式 2.编辑模式 3.末行模式 文件的软硬链接 ...

  7. 10.16 ln软硬链接的创建等

    ln make links between files 无参数  创建硬链接 -s 创建软连接 ln option 源文件 目标文件 #相反的: tar 目标文件 源文件 [root@wen test ...

  8. linux基础文件管理软硬链接

    一.文件系统的基本结构 1.文件和目录被组成一个单根倒置树目录结构 2.文件系统从根目录下开始,用“/”表示 3.根文件系统(rootfs):root filesystem文件名区分大小写 4.以 . ...

  9. Linux 软硬链接区别

    一.“硬链接“和“软链接“ 链接的概念:链接简单说实际上是一种文件共享的方式,是 POSIX 中的概念,主流文件系统都支持链接文件. 链接的作用:可以将链接简单地理解为 Windows 中常见的快捷方 ...

  10. 初始Linux软硬链接

    转载 https://blog.csdn.net/libaineu2004/article/details/85918682 用实践让你明白"软链接"和"硬链接" ...

随机推荐

  1. git与gitlab工具

    1.Git和SVN的对比 1)git是分布式的,svn是集中式的.(最核心) 2)git是每个历史版本都存储完整的文件,便于恢复,svn是存储差异文件,历史版本不可恢复.(核心) 3)git可离线完成 ...

  2. 记录一次MySQL进程崩溃,无法重启故障排查

    最近程序在跑着没几天,突然访问不了,查看应用进程都还在.只有数据库的进程down掉了.于是找到日志文件看到如下错误 -- :: [Note] InnoDB: Initializing buffer p ...

  3. SLAM+语音机器人DIY系列:前言

    ------SLAM+语音机器人DIY系列[目录]快速导览------ 第1章:Linux基础 1.Linux简介 2.安装Linux发行版ubuntu系统 3.Linux命令行基础操作 第2章:RO ...

  4. 论文翻译:LP-3DCNN: Unveiling Local Phase in 3D Convolutional Neural Networks

    引言 传统的3D卷积神经网络(CNN)计算成本高,内存密集,容易过度拟合,最重要的是,需要改进其特征学习能力.为了解决这些问题,我们提出了整流局部相位体积(ReLPV)模块,它是标准3D卷积层的有效替 ...

  5. idea、eclipse常用快捷键

    idea常用快捷键 Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以 ...

  6. flask standrad class 使用

    from flask import Flask,views,url_for app = Flask(__name__) class IndexView(views.View): def dispatc ...

  7. springboot 部署jar项目与自启动

    1.项目路径 jar包路径:/usr/local/src/apps/govdata.jar 2.启动项目 nohup java -jar govdata.jar & 3.查看项目启动日志 ta ...

  8. Java中String连接性能的分析

    总结:如果String的数量小于4(不含4),使用String.concat()来连接String,否则首先计算最终结果的长度,再用该长度来创建一个StringBuilder,最后使用这个String ...

  9. Python全栈开发之2、数据类型-数值、字符串、列表、字典、元组和文件处理

    一.Python 运算符 1.算术运算: 2.比较运算: 3.赋值运算: 4.逻辑运算: 5.成员运算: 二.基本数据类型 1.数字整型 int(整型) 在32位机器上,整数的位数为32位,取值范围为 ...

  10. [Python3] 034 函数式编程 匿名函数

    目录 函数式编程 Functional Programming 1. 简介 2. 函数 3. 匿名函数 3.1 lambda 表达式也称"匿名函数" 3.2 lambda 表达式的 ...