zoukankan      html  css  js  c++  java
  • inode,软硬链接

    如何查看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
  • 相关阅读:
    网络编程TCP
    collections模块
    异常处理
    hashlib模块
    configparse模块
    logging模块
    序列化模块
    os模块
    时间模块
    random模块
  • 原文地址:https://www.cnblogs.com/momenglin/p/8532205.html
Copyright © 2011-2022 走看看