Если вы используете GNU find
, вы можете указать количество ссылок с помощью -printf %n
. Таким образом, вы можете получить максимальное значение с:
find. -name 'file*' -printf '%n\n' | sort -rn | head -n1
Однако обратите внимание, что это число может включать ссылки, которых нет в .
, или записи, не соответствующие шаблону file*
.
Если вы хотите подсчитать только жесткие ссылки с именем file*
, найденные в .
, и просмотреть пути для них, вы можете выполнить:
find. -name 'file*' -printf '%i\0%p\0' | gawk -v RS='\0' '
{
inode = $0
getline file
}
++count[inode] >= max {
files[inode] = files[inode] " - " file ORS
max = count[inode]
max_inode = inode
}
END {
printf "%s", "File with most links ("max"):\n" files[max_inode]
}'
Который по-прежнему будет запускать только один find
вызов вместо одного для каждого файла.