Provided by: util-linux-locales_2.41-4ubuntu3_all bug

НАЗВА

       hardlink - пов'язування посиланнями декількох копій файла

КОРОТКИЙ ОПИС

       hardlink [параметри] каталог|файл...

ОПИС

       hardlink - інструмент, який заміняє копії файла їхніми жорсткими посиланнями або клонами
       копіювання-при-записі, які надають змогу заощадити місце на диску.

       Спочатку, hardlink створює бінарне дерево розмірів файлів, а потім порівнює вміст файлів, які мають
       однаковий розмір. Передбачено два базових методів порівняння вмісту. При використанні методу memcmp
       програма безпосередньо читає блоки даних з файлів і порівнює її. Інший метод засновано на контрольних
       сумах (подібних до SHA256); у цьому випадку для кожного з блоків даних буде обчислено контрольну суму за
       допомогою програмного інтерфейсу шифрування ядра Linux, і цю контрольну суму буде збережено у просторі
       користувача і використано для порівняння.

       Для кожного файла також буде кешовано «вступний» буфер (32 байти). Цей буфер буде використано незалежно
       від методу порівняння і запитаного розміру кешу та розміру введення-виведення. «Вступний» буфер значно
       зменшує потребу у діях із даними, оскільки файли дуже часто відрізняються уже початковим вмістом.

ПАРАМЕТРИ

       -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.

       -F, --prioritize-trees
           Keep files found in the earliest specified top-level directory if there are multiple identical files
           in different trees. For example, hardlink foo/ bar/ will link files in bar/ to equal files in the
           foo/ directory.

       -i, --include формальний_вираз
           Формальний вираз для включення файлів. Якщо було вказано параметр --exclude, цей параметр повторно
           включає файли, які інакше було б виключено. Якщо параметр використано без --exclude, буде включено
           лише файли, які відповідають взірцю.

       -m, --maximize
           Серед однакових файлів зберігати файл із найвищою кількістю посилань.

       -M, --minimize
           Серед однакових файлів зберігати файл із найнижчою кількістю посилань.

       -n, --dry-run
           Не виконувати дій, лише вивести дані щодо того, що буде зроблено.

       -l, --list-duplicates
           Don’t link anything, but list the absolute path of every duplicate file, one per line, preceded by a
           unique 16-byte discriminator and a tab.

       -z, --zero
           Separate lines with a NUL instead of a newline in -l mode.

       -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
           Вивести докладніші повідомлення із поясненням користувачеві того, які дії виконуються. Якщо вказано
           один раз, буде показано кожен файл із жорсткими посиланнями; якщо вказано двічі, також показує усі
           порівняння.

       -x, --exclude формальний_вираз
           Формальний вираз, який виключає файли із порівняння і створення посилань. Цей параметр можна вказати
           декілька разів в одній команді.

       --exclude-subtree формальний-вираз
           Формальний вираз, який виключає цілі каталоги із порівняння і створення посилань. Цей параметр також
           можна вказати декілька разів в одній команді.

       --mount
           Do not traverse directories on different filesystems (remain within the same filesystem).

       -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 при створенні
           класичних жорстких посилань.

       -h, --help
           Вивести текст довідки і завершити роботу.

       -V, --version
           Показати дані щодо версії і завершити роботу.

АРГУМЕНТИ

       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.41                                    2025-07-02                                        HARDLINK(1)