Как я могу найти топ-10 файлов в Unix с большинством ссылок на него?

3 ответа3

1

find -type f -ls | sort -rn -k 4 | head -10

Вывод будет отсортирован в порядке убывания количества ссылок. (-r = обратный, -n = числовая сортировка, -k 4 = сортировка по столбцу 4)

Если вам нужны символические ссылки, то вам придется посмотреть на другие ответы. Я ответил на единственную интерпретацию, которая имеет простой ответ. :П

1

Это похоже на работу:

$ find . -type l -exec readlink {} \; | sort | uniq -c | sort -r | head

Если вы хотите, чтобы отображаемое число файлов отличалось от 10, просто добавьте число, которое вы хотите, в качестве аргумента к head .

Это будет искать символические ссылки под текущим каталогом, чтобы искать в другом каталоге, заменить . с пути, который вы хотите.

-1

Я не верю, что в файле есть что-то, что говорит вам, сколько на него ссылок.

Если я прав, вам придется искать в дереве каталогов ссылки и сортировать их по файлам, на которые они ссылаются.

Команда find может перечислять ссылки с -type l но если вы не используете специальную обработку ссылок find, вы не увидите, к чему относится ссылка.

Так что постарайтесь:

sudo find -L / -type l -exec ls {} \;

перечислить ссылки. Затем перенаправьте вывод на sort , uniq и так далее.

Я не проверял это (это не является полным, так или иначе): я не уверен, есть ли у меня дублированные ссылки, чтобы найти в моей файловой системе, которые сделали бы тест значимым.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .