Рекурсивный поиск файлов с определенным количеством жестких ссылок

У меня есть каталог "tracking", содержащий жесткие ссылки на файлы/папки во втором каталоге ( используется для отслеживания перемещений/переименований). Если я удаляю что-то в исходной папке, дисковое пространство не освобождается, поскольку его жесткая ссылка все еще существует. Поэтому я хочу периодически очищать этот каталог "отслеживания". Поэтому мне нужно найти все файлы в нем, которые имеют количество жестких ссылок 1.

каков самый быстрый способ рекурсивно найти (и удалить) все файлы с количеством жестких ссылок 1?

Я знаю, что могу сделать что-то вроде find . -type f -exec ls -l {} + | grep -P "^.{11}1" а потом еще несколько труб/regexing, но это некрасиво и медленно. Я ищу что-то более чистое и быстрое.

8
задан imsodin
28.04.2023 9:00 Количество просмотров материала 2968
Распечатать страницу

1 ответ

My find и -links вариант (я на Ubuntu 14.04.5 LTS). Чтобы найти файлы, которые не имеют других жестких ссылок, используйте:

find -type f -links 1

команда для удаления этих файлов:

find -type f -links 1 -exec rm -f {} +
4
отвечен Kamil Maciorowski 2023-04-29 16:48

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх