我们可以使用ln命令来创建软链接,那么如何删除软链接呢?Linux中没有专门删除符号链接的命令,但是可以使用rm命令,主要用于删除文件和目录,如下:rmsymbolic_link_name当然也可以使用unlink命令,但是不要使用直接软链接的名称,因为它不仅用于删除链接,还用于删除文件。unlinksymbolic_link_name让我们详细看一下。使用rm命令删除符号链接在rm命令后提供链接路径的名称:rmname_or_path_of_link我们看一个具体的例子,下面的命令列出了当前路径下的文件:$ls-ltotal4708-rw-rw-r--1abhishekabhishek4794657Sep2720:36export.json-rw-rw-r--1abhishekabhishek311Sep2212:19line.txtlrwxrwxrwx1abhishekabhishek26Oct1711:24mylink->./Documents/.md-rw-rw-r--1abhishekabhishek106Sep2720:39redirects.json-rw-r--r--1abhishekabhishek12817Sep2212:28sample.txt在上面的列表中,mylink是一个符号链接,可以看到它以l开头(表示链接),名字就是它指向的文件。我们用rm删除它,并验证:$rmmylink$ls-ltotal4708-rw-rw-r--1abhishekabhishek4794657Sep2720:36export.json-rw-rw-r--1abhishekabhishek311Sep2212:19line.txt-rw-rw-r--1abhishekabhishek106Sep2720:39redirects.json-rw-r--r--1abhishekabhishek12817Sep2212:28sample.txt如图所示如下图,源文件仍然存在:删除多个链接可以使用rm命令一次性删除多个符号链接:rmsymlink1symlink2symlink3使用unlink命令删除软链接另一种删除软链接的方法是使用unlink命令。这个命令听上去好像只用来删除链接,其实也可以删除文件。用法如下:unlinkname_or_path_of_link我们用上面的例子,如下图:unlink不能一次删除多个链接。删除指向目录的软链接我们可以创建指向文件的软链接,也可以创建指向目录的软链接。删除目录需要-r选项,但删除指向目录的链接不需要-r选项。使用方法和删除文件链接一样:rmname_or_path_to_link_to_dir删除指向目录的软链接时,不要在目录末尾加斜线,否则会报错:$rmlink_to_dir/rm:cannotremove'link_to_dir/':Isadirectory下图是删除目录软链接的例子:注意,尽量不要使用-f选项强行删除目录的链接,因为会删除内容的目录。如下图所示:删除硬链接与软链接不同,硬链接与原文件几乎没有区别,只能通过inode号来区分。请参阅以下示例:$ls-litotal4716544057-rw-rw-r--1abhishekabhishek4794657Sep2720:36export.json544884-rw-rw-r--2abhishekabhishek311Sep2212:19hard_link544884-rw-rw-r--2abhishekabhishek311Sep2212:19line.txt1181365drwxrwxr-x2abhishekabhishek4096Oct1712:33my_dir546419-rw-rw-r--1abhishek20:2abhishepredirects.json删除硬链接与删除文件相同:rmpath_or_name_of_hard_link删除链接文件时会发生什么?其实在删除软链接的同时删除原文件的场景和需求几乎没有。当然,如果有,你可以通过符号链接找到原始文件,然后删除它。rm"$(readlink'/path/to/link')"/path/to/link注意,如果删除了源文件,但是没有删除软链接,那么这个链接就会变成断链或者悬空链接。虽然存在unlink命令,但我建议使用rm命令删除符号链接。因为这是一个我们都很熟悉的命令,我们经常用它来删除文件,当然它也可以用来删除符号链接。以上就是本次分享的全部内容。
