'\" t .\" Title: hardlink .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.20 .\" Date: 2024-04-27 .\" Manual: Команди користувача .\" Source: util-linux 2.40 .\" Language: English .\" .TH "HARDLINK" "1" "2024-04-27" "util\-linux 2.40" "Команди користувача" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "НАЗВА" hardlink \- пов\*(Aqязування посиланнями декількох копій файла .SH "КОРОТКИЙ ОПИС" .sp \fBhardlink\fP [options] [\fIdirectory\fP|\fIfile\fP]... .SH "ОПИС" .sp \fBhardlink\fP is a tool that replaces copies of a file with either hardlinks or copy\-on\-write clones, thus saving space. .sp \fBhardlink\fP 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 \fBmemcmp\fP 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. .sp Для кожного файла також буде кешовано «вступний» буфер (32 байти). Цей буфер буде використано незалежно від методу порівняння і запитаного розміру кешу та розміру введення\-виведення. «Вступний» буфер значно зменшує потребу у діях із даними, оскільки файли дуже часто відрізняються уже початковим вмістом. .SH "ПАРАМЕТРИ" .sp \fB\-h\fP, \fB\-\-help\fP .RS 4 Вивести текст довідки і завершити роботу. .RE .sp \fB\-V\fP, \fB\-\-version\fP .RS 4 Вивести дані щодо версії і завершити роботу. .RE .sp \fB\-c\fP, \fB\-\-content\fP .RS 4 Брати до уваги лише вміст файлів, а не атрибути, при визначенні того, чи є файли однаковими Те саме, що \fB\-pot\fP. .RE .sp \fB\-b\fP, \fB\-\-io\-size\fP \fIрозмір\fP .RS 4 Розмір буфера \fBread\fP(2) або \fBsendfile\fP(2), який буде використано для порівняння вмісту файлів. Після аргументу \fIрозмір\fP може бути вказано суфікси розмірностей \- KiB, MiB тощо. Частина рядка «iB» є необов\(cqязковою, наприклад, «K» є тим самим, що і «KiB». Типовим є розмір 8 КіБ для методу memcmp і 1 МіБ для інших методів. Пам\(cqять процесів для буфера використовує лише метод memcmp, інші методи використовують нуль\-копіювання, а дію з введення\-виведення виконує ядро. Розмір може бути змінено на льоту так, щоб він відповідав кількості контрольних сум кешованих даних. .RE .sp \fB\-d\fP, \fB\-\-respect\-dir\fP .RS 4 Only try to link files with the same directory name. The top\-level directory (as specified on the \fBhardlink\fP command line) is ignored. For example, \fBhardlink \-\-respect\-dir /foo /bar\fP will link \fI/foo/some/file\fP with \fI/bar/some/file\fP, but not \fI/bar/other/file\fP. If combined with \fB\-\-respect\-name\fP, then entire paths (except the top\-level directory) are compared. .RE .sp \fB\-f\fP, \fB\-\-respect\-name\fP .RS 4 Намагатися створити посилання лише для файлів з однаковою (основною) назвою. Наполегливо рекомендуємо використовувати довгі версії запису параметрів, а не \fB\-f\fP, який може бути оброблено у різний спосіб іншими реалізаціями \fBhardlink\fP. .RE .sp \fB\-i\fP, \fB\-\-include\fP \fIформальний_вираз\fP .RS 4 Формальний вираз для включення файлів. Якщо було вказано параметр \fB\-\-exclude\fP, цей параметр повторно включає файли, які інакше було б виключено. Якщо параметр використано без \fB\-\-exclude\fP, буде включено лише файли, які відповідають взірцю. .RE .sp \fB\-m\fP, \fB\-\-maximize\fP .RS 4 Серед однакових файлів зберігати файл із найвищою кількістю посилань. .RE .sp \fB\-M\fP, \fB\-\-minimize\fP .RS 4 Серед однакових файлів зберігати файл із найнижчою кількістю посилань. .RE .sp \fB\-n\fP, \fB\-\-dry\-run\fP .RS 4 Не виконувати дій, лише вивести дані щодо того, що буде зроблено. .RE .sp \fB\-o\fP, \fB\-\-ignore\-owner\fP .RS 4 Створити посилання і порівняти файли, навіть якщо дані щодо власника (користувача і групи) є різними. Результати можуть бути непередбачуваними. .RE .sp \fB\-O\fP, \fB\-\-keep\-oldest\fP .RS 4 Серед однакових файлів зберегти найдавніший файл (файл із найдавнішим часом внесення змін). Типово, буде збережено найновіший файл. Якщо вказано \fB\-\-maximize\fP або \fB\-\-minimize\fP, кількість посилань матиме вищий пріоритет за час внесення змін. .RE .sp \fB\-p\fP, \fB\-\-ignore\-mode\fP .RS 4 Створити посилання і порівняти файли, навіть якщо режим доступу до файлів є різним. Результати можуть бути дещо непередбачуваними. .RE .sp \fB\-q\fP, \fB\-\-quiet\fP .RS 4 Режим без повідомлень \- нічого не виводити. .RE .sp \fB\-r\fP, \fB\-\-cache\-size\fP \fIрозмір\fP .RS 4 Розмір кешу для контрольних сум даних. Для усіх методи, окрім memcmp, контрольну суму буде обчислено для кожного блоку даних файла (див. \fB\-\-io\-size\fP), ці контрольні суми буде кешовано для наступного порівняння. Розмір є важливим для великих файлів або великих наборів файлів однакового розміру. Типовим є розмір у 10 МіБ. .RE .sp \fB\-s\fP, \fB\-\-minimum\-size\fP \fIрозмір\fP .RS 4 Мінімальний розмір, який слід розглядати. Типовим є 1, посилання на порожні файли не створюватимуться. За аргументом \fIрозмір\fP можна вказати одиницю виміру: KiB (=124), MiB (=1024*1024) тощо для GiB, TiB, PiB, EiB, ZiB та YiB (частина «iB» є необов\(cqязковою, наприклад «K» є тим самим, що і «KiB») .RE .sp \fB\-S\fP, \fB\-\-maximum\-size\fP \fIрозмір\fP .RS 4 Максимальний розмір, який слід розглядати. Типовим є 0, тобто «без обмежень». За аргументом \fIрозмір\fP можна вказати одиницю виміру: KiB (=1024), MiB (=1024*1024) тощо для GiB, TiB, PiB, EiB, ZiB та YiB (частина «iB» є необов\(cqязковою, наприклад «K» є тим самим, що і «KiB»). .RE .sp \fB\-t\fP, \fB\-\-ignore\-time\fP .RS 4 Створити посилання і порівняти файли, навіть якщо час внесення змін до файлів є різним. Зазвичай, варто цим скористатися. .RE .sp \fB\-v\fP, \fB\-\-verbose\fP .RS 4 Вивести докладніші повідомлення із поясненням користувачеві того, які дії виконуються. Якщо вказано один раз, буде показано кожен файл із жорсткими посиланнями; якщо вказано двічі, також показує усі порівняння. .RE .sp \fB\-x\fP, \fB\-\-exclude\fP \fIформальний_вираз\fP .RS 4 Формальний вираз, який виключає файли із порівняння і створення посилань. .RE .sp \fB\-X\fP, \fB\-\-respect\-xattrs\fP .RS 4 Намагатися пов\(cqязати посиланням файли, лише якщо у них однакові розширені атрибути. .RE .sp \fB\-y\fP, \fB\-\-method\fP \fIназва\fP .RS 4 Встановити метод порівняння файлів. Серед методів, підтримку яких передбачено у програмі, sha256, sha1, crc32c і memcmp. Типовим є sha256 або memcmp, якщо програмний інтерфейс Linux є недоступним. Методи, засновані на контрольних сумах, реалізовано у спосіб нуль\-копіювання. У цьому випадку вміст файла не буде скопійовано до простору користувача, а усі обчислення буде виконано в ядрі. .RE .sp \fB\-\-reflink\fP[=\fIумова\fP] .RS 4 Створити клони з копіюванням\-при\-запису, а не жорсткі посилання. Спільними для файлів\-клонів є лише дані на диску, а режим доступу до файлів та власник можуть бути різними. Рекомендуємо використовувати його з параметрами \fB\-\-ignore\-owner\fP і \fB\-\-ignore\-mode\fP. Цей параметр неявним чином встановлює \fB\-\-skip\-reflinks\fP для ігнорування вже клонованих файлів. .sp Значенням необов\(cqязкового аргументу \fIумова\fP може бути \fBnever\fP, \fBalways\fP або \fBauto\fP. Якщо аргумент \fIумова\fP пропущено, типовим значенням є \fBauto\fP. У цьому випадку \fBhardlink\fP перевіряє тип файлової системи і використовує клони лише у BTRFS і XFS, а резервне повернення до жорстких посилань, якщо створення клону є неможливим. Значення аргументу \fBalways\fP призводить до вимикання виявлення типу файлової системи і повернення до жорстких посилань; у цьому випадку дозволеними будуть лише клони. .RE .sp \fB\-\-skip\-reflinks\fP .RS 4 Ігнорувати вже клоновані файли. Цим параметром можна скористатися без \fB\-\-reflink\fP при створенні класичних жорстких посилань. .RE .SH "АРГУМЕНТИ" .sp \fBhardlink\fP takes one or more directories which will be searched for files to be linked. .SH "ВАДИ" .sp У початковій реалізації \fBhardlink\fP використано параметр \fB\-f\fP для примусового створення жорстких посилань між файловими системами. Підтримки цієї рідкісної у використанні можливості у поточній версії \fBhardlink\fP не передбачено. .sp \fBhardlink\fP 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, \fBhardlink\fP 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 \fBhardlink\fP on a changing tree or on a tree controlled by another user. .SH "АВТОР" .sp Існує декілька реалізацій \fBhardlink\fP. Найпершу було створено Jakub Jelinek для дистрибутиву Fedora. Цю реалізацію було використано в util\-linux між версіями 2.34 і 2.36. Поточну реалізацію засновано на версії для Debian, автором якої є Julian Andres Klode. .SH "ЯК НАДІСЛАТИ ЗВІТ ПРО ВАДИ" .sp Для звітування щодо вад скористайтеся системою стеження за вадами \- \c .URL "https://github.com/util\-linux/util\-linux/issues" "" "." .SH "ДОСТУП ДО ПРОГРАМИ" .sp Програма \fBhardlink\fP є частиною пакунка util\-linux, який можна отримати з \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "архіву ядра Linux" "."