У меня find
есть -links
вариант (я на Ubuntu 14.04.5 LTS). Чтобы найти файлы, которые не имеют других жестких ссылок, используйте:
find -type f -links 1
Команда для удаления этих файлов:
find -type f -links 1 -exec rm -f {} +
У меня есть каталог для отслеживания, содержащий жесткие ссылки на файлы / каталоги во втором каталоге (используется для отслеживания перемещений / переименований). Если я удаляю что-то в исходной папке, дисковое пространство не освобождается, поскольку его жесткая ссылка все еще существует. Поэтому я хочу периодически очищать этот «отслеживающий» каталог. Поэтому мне нужно найти в нем все файлы с количеством жестких ссылок 1.
Какой самый быстрый способ найти (и удалить) рекурсивно все файлы с количеством жестких ссылок 1?
Я знаю, что могу сделать что-то вроде этого, find . -type f -exec ls -l {} \+ | grep -P "^.1"
а затем еще кое-что сделать, но это уродливо и медленно. Я ищу что-то чище и быстрее.
У меня find
есть -links
вариант (я на Ubuntu 14.04.5 LTS). Чтобы найти файлы, которые не имеют других жестких ссылок, используйте:
find -type f -links 1
Команда для удаления этих файлов:
find -type f -links 1 -exec rm -f {} +