Answers:
您可以rm
照常删除它:rm NameOfFile
。请注意,使用硬链接时,“原始文件”和“到文件的链接”之间没有区别:同一文件只有两个名称,仅删除其中一个名称不会删除另一个。
sudo
,如果使用提供的命令(以超级用户身份)创建它,则需要以root用户身份使用它(使用)。
我有这个脚本来删除多余的硬链接。但是请注意-这非常危险。
#!/bin/bash
clear
echo Reduce redundant hardlinks in the current folder
echo ------------------------------------------------
echo
echo " $(basename $0) [-R]"
echo " -R means recursive"
echo
read -p "You can break by pressing Ctrl+C"
echo
ask=1
if [ a$1 == "a-R" ]; then recursive=" -R "; fi
for i in $(ls -i $recursive | awk '{print $1}' | uniq --repeated | sort);
do
echo "Inode with multiple hardlinked files: $i"
first=1
for foundfile in $(find . -xdev -inum $i);
do
if [ $first == 1 ]; then
echo " preserving the first file: $foundfile"
first=0
else
echo " deleting the redundant file: $foundfile"
#rm $foundfile
fi
done
if [ $ask == 1 ]; then
read -p "Delete all the rest of redundant hardlinks without asking? y/N "
if [ a${REPLY,,} == "ay" ]; then ask=0; fi
fi
# read -p "pause for sure"
echo
done
echo "All redundant hardlins are removed."
echo
实际上rm
不起作用:
[user@localhost Products]$ rm AZP/
rm: cannot remove `AZP/': Is a directory
[user@localhost Products]$ rm -r AZP/
rm: cannot remove `AZP': Not a directory
什么是有效的unlink AZP
。
AZP/
看起来像一个目录,如果没有递归标志,rm不会在目录上运行。也根据coreutills文档。>>>大多数系统禁止建立到目录的硬链接。在允许的情况下,只有超级用户才能这样做(并且要谨慎,因为创建周期会给许多其他实用程序带来问题)。
AZP
是,则指向目录(或其他任何目录)的符号链接rm AZP/
将不起作用,因为rm
它认为它是目录(由于/
末尾为)。但是rm AZP
将正常工作。-1
ln -n /path/to/file
创建一个名为的文件file
,是的简写ln --no-dereference /path/to/file
。这意味着,如果/path/to/file
是符号链接,则新创建的硬链接将指向该符号链接,而不是符号链接的目标。