inode、软硬链接
关于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:文件粉碎工具
shred
:shred -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
|
软链接练习:
- 创建一个目录
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
|
- 创建一个目录
/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、软硬链接的更多相关文章
- inode block 软硬链接
inode block 软硬链接 1 inode 1.1 inode(索引节点)作用 (1)用于存储文件数据属性信息(2)用于存储数据指针信息 1.2 如何产生 格式化时,创建文件系统 1.3 如何查 ...
- ln 软硬链接
链接 在谈软链接与硬链接之前,先来说说文件系统基础知识. Linux 系统中,一切皆文件. 文件包含两部分:文件属性与权限(inode),文件内容(data-block). 一个文件可由1个inode ...
- Linux中的软硬链接
说到Linux中的软硬链接,就必须谈一下Linux的文件系统的组成的重要部分iNode和block. 首先是iNode,先用一张图了解一下iNode在Linux文件系统中的地位: Linux中的文件的 ...
- 软硬链接、文件删除原理、linux中的三种时间、chkconfig优化
第1章 软硬链接 1.1 硬链接 1.1.1 含义 多个文件拥有相同的inode号码 硬链接即文件的多个入口 1.1.2 作用 防止你误删除文件 1.1.3 如何创建硬链接 ln 命令,前面是源文件 ...
- linux文件属性软硬链接知识
链接的概念 在linux系统中,链接可分为两种:一种为硬链接,另一种为软链接或符号链接.在默认不带参数的情况下,执行ln命令创建的链接是硬链接. 如果使用ln -s创建链接则为软链接,前面文件类型为 ...
- 文件的软硬链接& 文件编辑vi和vim
目录 文件的软硬链接 1.软链接 2.硬链接 文件编辑vi和vim 须先安装vim命令的软件包yum install -y vim 三种模式: 1.普通模式 2.编辑模式 3.末行模式 文件的软硬链接 ...
- 10.16 ln软硬链接的创建等
ln make links between files 无参数 创建硬链接 -s 创建软连接 ln option 源文件 目标文件 #相反的: tar 目标文件 源文件 [root@wen test ...
- linux基础文件管理软硬链接
一.文件系统的基本结构 1.文件和目录被组成一个单根倒置树目录结构 2.文件系统从根目录下开始,用“/”表示 3.根文件系统(rootfs):root filesystem文件名区分大小写 4.以 . ...
- Linux 软硬链接区别
一.“硬链接“和“软链接“ 链接的概念:链接简单说实际上是一种文件共享的方式,是 POSIX 中的概念,主流文件系统都支持链接文件. 链接的作用:可以将链接简单地理解为 Windows 中常见的快捷方 ...
- 初始Linux软硬链接
转载 https://blog.csdn.net/libaineu2004/article/details/85918682 用实践让你明白"软链接"和"硬链接" ...
随机推荐
- 人性化的Requests模块(响应与编码、header处理、cookie处理、重定向与历史记录、代理设置)
Requests库是第三方模块,需要额外进行安装.Requests是一个开源库 pip install requests 去GitHub下载回来,进入解压文件,运行setup.py 比urllib2实 ...
- golang可见性规则(公有与私有,访问权限)
Go语言没有像其它语言一样有public.protected.private等访问控制修饰符,它是通过字母大小写来控制可见性的,如果定义的常量.变量.类型.接口.结构.函数等的名称是大写字母开头 ...
- vs2008,windows mobile 6 搭建PDA开发环境相关软件下载
1.Windows Mobile 6.5 Professional Developer Tool Kit (CHS).msi 下载地址:https://download.microsoft.com/d ...
- PJzhang:任意密码重置的常规姿势
猫宁!!! 之前在360补天看过carry_your分享的46分钟短视频“任意用户密码重置的10种姿势”. 在京东SRC安全小课堂第89期,也有一篇他的文章:web漏洞之逻辑漏洞挖掘.内容朴实无华. ...
- 神经网络中batch_size参数的含义及设置方法
本文作者Key,博客园主页:https://home.cnblogs.com/u/key1994/ 本内容为个人原创作品,转载请注明出处或联系:zhengzha16@163.com 在进行神经网络训练 ...
- C#实现多线程的方法:线程(Thread类)和线程池(ThreadPool)
简介 使用线程的主要原因:应用程序中一些操作需要消耗一定的时间,比如对文件.数据库.网络的访问等等,而我们不希望用户一直等待到操作结束,而是在此同时可以进行一些其他的操作. 这就可以使用线程来实现. ...
- 让mysql的id字段变成表的主键
1.#已经加主键 desc szdj.sys_message_user;alter table sys_message_user add constraint pk_mess_user primary ...
- MSSQL 索引
INCLUDE索引作用:减少 key lookup所带来的性能开销. 效率主要体现在覆盖查询(建的索引为覆盖索引),在查询时把SELECT显示列放在INCLUDE里作为非索引健列,不用于查询只显示在结 ...
- 企业微信 PC端多开
企业微信,正常情况下一个PC端只能登一个账号.现在多个人共用一个外网机,需要在一个电脑上登录多个账号.解决办法如下: 下载process explorer.exe,使用管理员权限运行,找到WXWork ...
- 树莓派3 安装kali注意事项(无需显示器、键鼠连接树莓派)2017/9/18更新
kali系统树莓派专用版下载地址https://www.offensive-security.com/kali-linux-arm-images/ 官方下载页面https://www.kali.or ...