linux学习(软硬链接+静态库)[15]

linux学习(软硬链接+静态库)[15]_第1张图片

软硬链接

软链接(symbolic link)和硬链接(hard link)是操作系统中用于创建文件或目录之间关联的两种方式。

软链接是一个特殊的文件,它包含了指向目标文件或目录的路径。软链接可以跨文件系统,并且可以指向不存在的文件或目录。软链接的修改会直接反映到目标文件或目录上。删除软链接不会影响目标文件或目录。

硬链接是一个文件系统中的多个文件项,它们共享相同的索引节点(inode)和数据块。硬链接只能在同一个文件系统中创建,且不能指向目录。硬链接的修改会直接反映到其他硬链接和目标文件上。删除任何一个硬链接不会影响其他硬链接和目标文件,只有当所有硬链接和目标文件都被删除时,才会释放文件的磁盘空间。

总结来说,软链接是一个指向目标文件或目录的路径,可以跨文件系统,可以指向不存在的文件或目录,删除软链接不会影响目标文件或目录。而硬链接是多个文件项共享相同的索引节点和数据块,只能在同一个文件系统中创建,不能指向目录,删除任何一个硬链接不会影响其他硬链接和目标文件。
在Linux下,可以使用以下命令行进行软链接和硬链接的创建和操作:

  1. 创建软链接:

    ln -s <目标文件或目录> <链接文件名>
    

    例如,创建一个指向目标文件的软链接:

    ln -s /path/to/target/file /path/to/link/file
    

    创建一个指向目标目录的软链接:

    ln -s /path/to/target/directory /path/to/link/directory
    
  2. 创建硬链接:

    ln <目标文件> <链接文件名>
    

    例如,创建一个指向目标文件的硬链接:

    ln /path/to/target/file /path/to/link/file
    

    注意:硬链接不能指向目录,只能指向文件。

  3. 查看链接信息:

    ls -l <链接文件名>
    

    例如,查看软链接的目标文件或目录:

    ls -l /path/to/link/file
    
  4. 删除链接:

    rm <链接文件名>
    

    例如,删除软链接:

    rm /path/to/link/file
    

    删除硬链接:

    rm /path/to/link/file
    

请注意,以上命令中的<目标文件或目录>是指要创建链接的文件或目录的路径,<链接文件名>是指创建的链接文件的路径和名称。
linux学习(软硬链接+静态库)[15]_第2张图片
在这里插入图片描述
软链接有自己独特的inode
在这里插入图片描述
linux学习(软硬链接+静态库)[15]_第3张图片
在这里插入图片描述
linux学习(软硬链接+静态库)[15]_第4张图片

打包静态库

归档
在Linux下,可以使用ar命令对静态库进行归档(archive)操作。归档是将多个目标文件打包成一个库文件的过程。

以下是对静态库进行归档的命令行步骤:

  1. 创建一个空的静态库文件:

    ar rcs lib<库名>.a
    

    例如,创建一个名为libexample.a的空静态库文件:

    ar rcs libexample.a
    
  2. 将目标文件添加到静态库中:

    ar rcs lib<库名>.a <目标文件1> <目标文件2> ...
    

    例如,将名为object1.o和object2.o的目标文件添加到libexample.a中:

    ar rcs libexample.a object1.o object2.o
    
  3. 查看静态库中包含的目标文件:

    ar t lib<库名>.a
    

    例如,查看libexample.a中包含的目标文件:

    ar t libexample.a
    
  4. 提取静态库中的目标文件:

    ar x lib<库名>.a
    

    例如,从libexample.a中提取目标文件:

    ar x libexample.a
    
  5. 删除静态库中的目标文件:

    ar d lib<库名>.a <目标文件>
    

    例如,从libexample.a中删除object1.o目标文件:

    ar d libexample.a object1.o
    

请注意,以上命令中的<库名>是指要创建或操作的静态库的名称,<目标文件>是指要添加、提取或删除的目标文件的名称。静态库的命名约定是以lib开头,以.a结尾。
linux学习(软硬链接+静态库)[15]_第5张图片
在这里插入图片描述

你可能感兴趣的:(linux,linux,学习)