'\" t .\" Title: hardlink .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.23 .\" Date: 2025-03-29 .\" Manual: Команди користувача .\" Source: util-linux 2.41 .\" Language: English .\" .TH "HARDLINK" "1" "2025-03-29" "util\-linux 2.41" "Команди користувача" .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 [параметри] \fIкаталог\fP|\fIфайл\fP... .SH "ОПИС" .sp \fBhardlink\fP \- інструмент, який заміняє копії файла їхніми жорсткими посиланнями або клонами копіювання\-при\-записі, які надають змогу заощадити місце на диску. .sp Спочатку, \fBhardlink\fP створює бінарне дерево розмірів файлів, а потім порівнює вміст файлів, які мають однаковий розмір. Передбачено два базових методів порівняння вмісту. При використанні методу \fBmemcmp\fP програма безпосередньо читає блоки даних з файлів і порівнює її. Інший метод засновано на контрольних сумах (подібних до SHA256); у цьому випадку для кожного з блоків даних буде обчислено контрольну суму за допомогою програмного інтерфейсу шифрування ядра Linux, і цю контрольну суму буде збережено у просторі користувача і використано для порівняння. .sp Для кожного файла також буде кешовано «вступний» буфер (32 байти). Цей буфер буде використано незалежно від методу порівняння і запитаного розміру кешу та розміру введення\-виведення. «Вступний» буфер значно зменшує потребу у діях із даними, оскільки файли дуже часто відрізняються уже початковим вмістом. .SH "ПАРАМЕТРИ" .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\-F\fP, \fB\-\-prioritize\-trees\fP .RS 4 Keep files found in the earliest specified top\-level directory if there are multiple identical files in different trees. For example, \fBhardlink foo/ bar/\fP will link files in bar/ to equal files in the foo/ directory. .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\-l\fP, \fB\-\-list\-duplicates\fP .RS 4 Don\(cqt link anything, but list the absolute path of every duplicate file, one per line, preceded by a unique 16\-byte discriminator and a tab. .RE .sp \fB\-z\fP, \fB\-\-zero\fP .RS 4 Separate lines with a NUL instead of a newline in \fB\-l\fP mode. .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\-\-exclude\-subtree\fP \fIформальний\-вираз\fP .RS 4 Формальний вираз, який виключає цілі каталоги із порівняння і створення посилань. Цей параметр також можна вказати декілька разів в одній команді. .RE .sp \fB\-\-mount\fP .RS 4 Do not traverse directories on different filesystems (remain within the same filesystem). .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[\fB=\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 .sp \fB\-h\fP, \fB\-\-help\fP .RS 4 Вивести текст довідки і завершити роботу. .RE .sp \fB\-V\fP, \fB\-\-version\fP .RS 4 Показати дані щодо версії і завершити роботу. .RE .SH "АРГУМЕНТИ" .sp \fBhardlink\fP приймає один або декілька записів каталогів, у яких відбуватиметься пошук файлів для створення посилань. .SH "ВАДИ" .sp У початковій реалізації \fBhardlink\fP використано параметр \fB\-f\fP для примусового створення жорстких посилань між файловими системами. Підтримки цієї рідкісної у використанні можливості у поточній версії \fBhardlink\fP не передбачено. .sp При створенні \fBhardlink\fP було зроблено припущення, що ієрархії файлової системи, з якими працює програма, не змінюються під час її роботи. Якщо в ієрархії відбуваються зміни, результат роботи може бути невизначеним або потенційно небезпечним для даних. Наприклад, якщо звичайний файл буде замінено файлом пристрою, \fBhardlink\fP може розпочати читання з пристрою. Якщо компонент шляху буде замінено символічним посиланням або змінено права доступу до файла, може постраждати захист системи. Не запускайте \fBhardlink\fP для ієрархії файлів, у якій відбуваються зміни, або ієрархії файлів, яку контролює інший користувач. .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" "."