Provided by: util-linux-locales_2.39.3-9ubuntu6.3_all 

НАЗВА
hardlink - пов'язування посиланнями декількох копій файла
КОРОТКИЙ ОПИС
hardlink [параметри] [каталог|файл]...
ОПИС
hardlink - інструмент, який заміняє копії файла їхніми жорсткими посиланнями або клонами
копіювання-при-записі, які надають змогу заощадити місце на диску.
Спочатку, hardlink створює бінарне дерево розмірів файлів, а потім порівнює вміст файлів, які мають
однаковий розмір. Передбачено два базових методів порівняння вмісту. При використанні методу memcmp
програма безпосередньо читає блоки даних з файлів і порівнює її. Інший метод засновано на контрольних
сумах (подібних до SHA256); у цьому випадку для кожного з блоків даних буде обчислено контрольну суму за
допомогою програмного інтерфейсу шифрування ядра Linux, і цю контрольну суму буде збережено у просторі
користувача і використано для порівняння.
Для кожного файла також буде кешовано «вступний» буфер (32 байти). Цей буфер буде використано незалежно
від методу порівняння і запитаного розміру кешу та розміру введення-виведення. «Вступний» буфер значно
зменшує потребу у діях із даними, оскільки файли дуже часто відрізняються уже початковим вмістом.
ПАРАМЕТРИ
-h, --help
Вивести текст довідки і завершити роботу.
-V, --version
Вивести дані щодо версії і завершити роботу.
-c, --content
Брати до уваги лише вміст файлів, а не атрибути, при визначенні того, чи є файли однаковими Те саме,
що -pot.
-b, --io-size розмір
Розмір буфера read(2) або sendfile(2), який буде використано для порівняння вмісту файлів. Після
аргументу розмір може бути вказано суфікси розмірностей - KiB, MiB тощо. Частина рядка «iB» є
необов’язковою, наприклад, «K» є тим самим, що і «KiB». Типовим є розмір 8 КіБ для методу memcmp і 1
МіБ для інших методів. Пам’ять процесів для буфера використовує лише метод memcmp, інші методи
використовують нуль-копіювання, а дію з введення-виведення виконує ядро. Розмір може бути змінено на
льоту так, щоб він відповідав кількості контрольних сум кешованих даних.
-d, --respect-dir
Only try to link files with the same directory name. The top-level directory (as specified on the
hardlink command line) is ignored. For example, hardlink --respect-dir /foo /bar will link
/foo/some/file with /bar/some/file, but not /bar/other/file. If combined with --respect-name, then
entire paths (except the top-level directory) are compared.
-f, --respect-name
Намагатися створити посилання лише для файлів з однаковою (основною) назвою. Наполегливо рекомендуємо
використовувати довгі версії запису параметрів, а не -f, який може бути оброблено у різний спосіб
іншими реалізаціями hardlink.
-i, --include формальний_вираз
Формальний вираз для включення файлів. Якщо було вказано параметр --exclude, цей параметр повторно
включає файли, які інакше було б виключено. Якщо параметр використано без --exclude, буде включено
лише файли, які відповідають взірцю.
-m, --maximize
Серед однакових файлів зберігати файл із найвищою кількістю посилань.
-M, --minimize
Серед однакових файлів зберігати файл із найнижчою кількістю посилань.
-n, --dry-run
Не виконувати дій, лише вивести дані щодо того, що буде зроблено.
-o, --ignore-owner
Створити посилання і порівняти файли, навіть якщо дані щодо власника (користувача і групи) є різними.
Результати можуть бути непередбачуваними.
-O, --keep-oldest
Серед однакових файлів зберегти найдавніший файл (файл із найдавнішим часом внесення змін). Типово,
буде збережено найновіший файл. Якщо вказано --maximize або --minimize, кількість посилань матиме
вищий пріоритет за час внесення змін.
-p, --ignore-mode
Створити посилання і порівняти файли, навіть якщо режим доступу до файлів є різним. Результати можуть
бути дещо непередбачуваними.
-q, --quiet
Режим без повідомлень - нічого не виводити.
-r, --cache-size розмір
Розмір кешу для контрольних сум даних. Для усіх методи, окрім memcmp, контрольну суму буде обчислено
для кожного блоку даних файла (див. --io-size), ці контрольні суми буде кешовано для наступного
порівняння. Розмір є важливим для великих файлів або великих наборів файлів однакового розміру.
Типовим є розмір у 10 МіБ.
-s, --minimum-size розмір
Мінімальний розмір, який слід розглядати. Типовим є 1, посилання на порожні файли не
створюватимуться. За аргументом розмір можна вказати одиницю виміру: KiB (=124), MiB (=1024*1024)
тощо для GiB, TiB, PiB, EiB, ZiB та YiB (частина «iB» є необов’язковою, наприклад «K» є тим самим, що
і «KiB»)
-S, --maximum-size розмір
Максимальний розмір, який слід розглядати. Типовим є 0, тобто «без обмежень». За аргументом розмір
можна вказати одиницю виміру: KiB (=1024), MiB (=1024*1024) тощо для GiB, TiB, PiB, EiB, ZiB та YiB
(частина «iB» є необов’язковою, наприклад «K» є тим самим, що і «KiB»).
-t, --ignore-time
Створити посилання і порівняти файли, навіть якщо час внесення змін до файлів є різним. Зазвичай,
варто цим скористатися.
-v, --verbose
Verbose output, explain to the user what is being done. If specified once, every hardlinked file is
displayed. If specified twice, it also shows every comparison.
-x, --exclude формальний_вираз
Формальний вираз, який виключає файли із порівняння і створення посилань.
-X, --respect-xattrs
Намагатися пов’язати посиланням файли, лише якщо у них однакові розширені атрибути.
-y, --method назва
Встановити метод порівняння файлів. Серед методів, підтримку яких передбачено у програмі, sha256,
sha1, crc32c і memcmp. Типовим є sha256 або memcmp, якщо програмний інтерфейс Linux є недоступним.
Методи, засновані на контрольних сумах, реалізовано у спосіб нуль-копіювання. У цьому випадку вміст
файла не буде скопійовано до простору користувача, а усі обчислення буде виконано в ядрі.
--reflink[=умова]
Створити клони з копіюванням-при-запису, а не жорсткі посилання. Спільними для файлів-клонів є лише
дані на диску, а режим доступу до файлів та власник можуть бути різними. Рекомендуємо використовувати
його з параметрами --ignore-owner і --ignore-mode. Цей параметр неявним чином встановлює
--skip-reflinks для ігнорування вже клонованих файлів.
Значенням необов’язкового аргументу умова може бути never, always або auto. Якщо аргумент умова
пропущено, типовим значенням є auto. У цьому випадку hardlink перевіряє тип файлової системи і
використовує клони лише у BTRFS і XFS, а резервне повернення до жорстких посилань, якщо створення
клону є неможливим. Значення аргументу always призводить до вимикання виявлення типу файлової системи
і повернення до жорстких посилань; у цьому випадку дозволеними будуть лише клони.
--skip-reflinks
Ігнорувати вже клоновані файли. Цим параметром можна скористатися без --reflink при створенні
класичних жорстких посилань.
АРГУМЕНТИ
hardlink приймає один або декілька записів каталогів, у яких відбуватиметься пошук файлів для створення
посилань.
ВАДИ
У початковій реалізації hardlink використано параметр -f для примусового створення жорстких посилань між
файловими системами. Підтримки цієї рідкісної у використанні можливості у поточній версії hardlink не
передбачено.
При створенні hardlink було зроблено припущення, що ієрархії файлової системи, з якими працює програма,
не змінюються під час її роботи. Якщо в ієрархії відбуваються зміни, результат роботи може бути
невизначеним або потенційно небезпечним для даних. Наприклад, якщо звичайний файл буде замінено файлом
пристрою, hardlink може розпочати читання з пристрою. Якщо компонент шляху буде замінено символічним
посиланням або змінено права доступу до файла, може постраждати захист системи. Не запускайте hardlink
для ієрархії файлів, у якій відбуваються зміни, або ієрархії файлів, яку контролює інший користувач.
АВТОР
Існує декілька реалізацій hardlink. Найпершу було створено Jakub Jelinek для дистрибутиву Fedora. Цю
реалізацію було використано в util-linux між версіями 2.34 і 2.36. Поточну реалізацію засновано на версії
для Debian, автором якої є Julian Andres Klode.
ЯК НАДІСЛАТИ ЗВІТ ПРО ВАДИ
Для звітування щодо вад скористайтеся системою стеження за вадами -
https://github.com/util-linux/util-linux/issues.
ДОСТУП ДО ПРОГРАМИ
Програма hardlink є частиною пакунка util-linux, який можна отримати з архіву ядра Linux
<https://www.kernel.org/pub/linux/utils/util-linux/>.
util-linux 2.39.3 2025-06-05 HARDLINK(1)