004link()unlink()_LINUX

link、unlink

1. 共享盘块


在 Linux 系统中,目录项游离于 inode 之外,文件名与 inode 并存于 dentry 中。
其目的为了实现文件共享。Linux 允许多个目录项共享一个 inode,即共享盘块(data)。不同文件名,但在内核中其实是一个文件。

2. link() 为已经存在的文件创建目录项(硬链接)

头文件包含和函数声明

man 2 link

#include<unistd.h>

int link(const char* oldpath, const char* newpath);

返回值:

  • 成功:0
  • 失败:-1,errno
ln t.c t.hard	# 创建硬链接

3. unlink() 删除一个文件的目录项

头文件包含和函数声明

#include<unistd.h&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Linux 中,可以使用 `unlink` 命令来移除一个链接。它的语法如下: ``` unlink linkname ``` 其中,`linkname` 是要移除的链接的名称。 如果 `linkname` 是一个符号链接,则只会移除该符号链接;如果 `linkname` 是一个硬链接,则会将该硬链接的链接计数减 1。只有当链接计数为 0 时,才会真正删除该文件。 需要注意的是,`unlink` 命令只能删除链接,不能删除文件本身。如果要删除文件本身,可以使用 `rm` 命令。 ### 回答2: 在Linux中,link命令是用来创建硬链接或符号链接的。硬链接是指多个文件名指向同一个索引节点的连接,而符号链接则是一个特殊类型的文件,包含了指向另一个文件或目录的路径信息。 要移除硬链接,可以使用unlink命令。该命令会删除指定的硬链接文件,但不会影响原始文件。例如,要移除名为linkfile的硬链接,可以运行以下命令: unlink linkfile 要移除符号链接,可以使用rm命令,添加-l选项来指示删除链接本身而不是目标文件。例如,要移除名为linkfile的符号链接,可以运行以下命令: rm -l linkfile 在删除链接之前,需要确保链接文件不再需要,以免丢失数据或文件。在进行删除操作之前,最好备份或移动相关文件,以防止意外损坏或丢失。 总的来说,无论是硬链接还是符号链接,要移除它们,可以使用unlink或rm命令,并确保在操作之前备份相关文件,以免不必要的损失。 ### 回答3: Linux中的link命令用于创建文件的硬链接,硬链接是指在文件系统中创建一个指向同一索引节点的新文件名。当我们不再需要链接文件或想要删除链接时,可以使用link命令的反操作来移除硬链接。 要移除硬链接,我们需要使用unlink命令,其语法如下: ``` unlink 文件名 ``` 其中,文件名是要删除的链接文件的名称。当我们执行unlink命令时,系统将查找该链接所指向的文件的链接数。如果该文件有其他链接存在,则链接数减一,链接文件将被删除。如果该文件只有一个链接存在,系统将删除链接文件并释放该文件的磁盘空间。 使用unlink命令时,需要注意以下几点: 1. 如果删除的是可执行文件或正在使用的文件,则该文件的链接数不会减少,只是链接文件被删除。只有在所有链接都被删除后,才会释放磁盘空间。 2. 如果删除的是符号链接(软链接),则只会删除链接本身,不会影响原始文件。 3. 如果删除的是硬链接文件,那么只有当所有的硬链接都被删除后,才会真正删除文件。 总而言之,通过unlink命令可以移除硬链接,但需要确保该链接不再被其他文件引用。这种操作可以节省磁盘空间,同时保持文件系统的整洁和有序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值