脚本删除特定文件的所有硬链接

May*_*hux 4 scripts hard-link

我想删除特定文件的所有硬链接。

用法是script somefile,这将计算文件 somefile 的硬链接,然后将删除仅保留此文件的所有硬链接。

命令

find / -samefile file-name | xargs rm
Run Code Online (Sandbox Code Playgroud)

会做需要的,但这也会删除原始文件。

你也可以使用

find / -inum Inode-number | xargs rm
Run Code Online (Sandbox Code Playgroud)

但这也会删除原始文件。

我的第一个脚本 veriosn 看起来像

#!/bin/bash
file=$1
inode=`ls -li $file | cut -d" " -f1`

find / -inum $inode | xargs rm
Run Code Online (Sandbox Code Playgroud)

但正如我上面所说,这也会删除原始文件,那么如何保留第一个实例并删除其他实例。

mur*_*uru 5

您可以使用!原始文件的路径来排除它:

$ find . -samefile bar                   
./baz
./bar
$ find . -samefile bar ! -path "./bar"   
./baz
Run Code Online (Sandbox Code Playgroud)

路径必须与find输出匹配,因此如果您从/.

笔记: