Provided by: util-linux-locales_2.40.2-1ubuntu2_all bug

НАЗВА

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

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

       hardlink [options] [directory|file]...

ОПИС

       hardlink is a tool that replaces copies of a file with either hardlinks or copy-on-write
       clones, thus saving space.

       hardlink first creates a binary tree of file sizes and then compares the content of files
       that have the same size. There are two basic content comparison methods. The memcmp method
       directly reads data blocks from files and compares them. The other method is based on
       checksums (like SHA256); in this case for each data block a checksum is calculated by the
       Linux kernel crypto API, and this checksum is stored in userspace and used for file
       comparisons.

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

       -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 takes one or more directories which will be searched for files to be linked.

ВАДИ

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

       hardlink assumes that the trees it operates on do not change during operation. If a tree
       does change, the result is undefined and potentially dangerous. For example, if a regular
       file is replaced by a device, hardlink may start reading from the device. If a component
       of a path is replaced by a symbolic link or file permissions change, security may be
       compromised. Do not run hardlink on a changing tree or on a tree controlled by another
       user.

АВТОР

       Існує декілька реалізацій 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/>.