Provided by: manpages-uk_4.15.0-9_all
НАЗВА
hardlink — пов'язування посиланнями декількох копій файла
КОРОТКИЙ ОПИС
hardlink [параметри] [каталог|файл]...
ОПИС
hardlink — інструмент, який заміняє копії файла їхніми жорсткими посиланнями або клонами копіювання-при-записі, які надають змогу заощадити місце на диску. Спочатку, hardlink створює бінарне дерево розмірів файлів, а потім порівнює вміст файлів, які мають однаковий розмір. Передбачено два базових методів порівняння вмісту. При використанні методу memcmp програма безпосередньо читає блоки даних з файлів і порівнює її. Інший метод засновано на контрольних сумах (подібних до SHA256); у цьому випадку для кожного з блоків даних буде обчислено контрольну суму за допомогою програмного інтерфейсу шифрування ядра Linux, і цю контрольну суму буде збережено у просторі користувача і використано для порівняння. Для кожного файла також буде кешовано «вступний» буфер (32 байти). Цей буфер буде використано незалежно від методу порівняння і запитаного розміру кешу та розміру введення-виведення. «Вступний» буфер значно зменшує потребу у діях із даними, оскільки файли дуже часто відрізняються уже початковим вмістом.
ПАРАМЕТРИ
-h, --help Вивести текст довідки і завершити роботу. -V, --version Вивести дані щодо версії і завершити роботу. -v, --verbose Вивести докладніші повідомлення із поясненням користувачеві того, які дії виконуються. Якщо вказано один раз, буде показано кожен файл із жорсткими посиланнями; якщо вказано двічі, також показує усі порівняння. -q, --quiet Режим без повідомлень — нічого не виводити. -n, --dry-run Не виконувати дій, лише вивести дані щодо того, що буде зроблено. -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 при створенні класичних жорстких посилань. -f, --respect-name Намагатися створити посилання лише для файлів з однаковою (основною) назвою. Наполегливо рекомендуємо використовувати довгі версії запису параметрів, а не -f, який може бути оброблено у різний спосіб іншими реалізаціями hardlink. -p, --ignore-mode Створити посилання і порівняти файли, навіть якщо режим доступу до файлів є різним. Результати можуть бути дещо непередбачуваними. -o, --ignore-owner Створити посилання і порівняти файли, навіть якщо дані щодо власника (користувача і групи) є різними. Результати можуть бути непередбачуваними. -t, --ignore-time Створити посилання і порівняти файли, навіть якщо час внесення змін до файлів є різним. Зазвичай, варто цим скористатися. -c --content Брати до уваги лише вміст файлів, а не атрибути, при визначенні того, чи є файли однаковими. Те саме, що -pot. -X, --respect-xattrs Намагатися пов'язати посиланням файли, лише якщо у них однакові розширені атрибути. -m, --maximize Серед однакових файлів зберігати файл із найвищою кількістю посилань. -M, --minimize Серед однакових файлів зберігати файл із найнижчою кількістю посилань. -O, --keep-oldest Серед однакових файлів зберегти найдавніший файл (файл із найдавнішим часом внесення змін). Типово, буде збережено найновіший файл. Якщо вказано --maximize або --minimize, кількість посилань матиме вищий пріоритет за час внесення змін. -x, --exclude формальний_вираз Формальний вираз, який виключає файли із порівняння і створення посилань. -i, --include формальний_вираз Формальний вираз для включення файлів. Якщо було вказано параметр --exclude, цей параметр повторно включає файли, які інакше було б виключено. Якщо параметр використано без --exclude, буде включено лише файли, які відповідають взірцю. -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»). -b, --io-size розмір Розмір буфера read(2) або sendfile(2), який буде використано для порівняння вмісту файлів. Після аргументу розмір може бути вказано суфікси розмірностей — KiB, MiB тощо. Частина рядка «iB» є необов'язковою, наприклад, «K» є тим самим, що і «KiB». Типовим є розмір 8 КіБ для методу memcmp і 1 МіБ для інших методів. Пам'ять процесів для буфера використовує лише метод memcmp, інші методи використовують нуль-копіювання, а дію з введення-виведення виконує ядро. Розмір може бути змінено на льоту так, щоб він відповідав кількості контрольних сум кешованих даних. -r, --cache-size розмір Розмір кешу для контрольних сум даних. Для усіх методи, окрім memcmp, контрольну суму буде обчислено для кожного блоку даних файла (див. --io-size), ці контрольні суми буде кешовано для наступного порівняння. Розмір є важливим для великих файлів або великих наборів файлів однакового розміру. Типовим є розмір у 10 МіБ.
АРГУМЕНТИ
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 Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.
ПЕРЕКЛАД
Український переклад цієї сторінки посібника виконано Yuri Chornoivan <yurchor@ukr.net> Цей переклад є безкоштовною документацією; будь ласка, ознайомтеся з умовами GNU General Public License Version 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩. НЕ НАДАЄТЬСЯ ЖОДНИХ ГАРАНТІЙ. Якщо ви знайшли помилки у перекладі цієї сторінки підручника, будь ласка, надішліть електронний лист до списку листування перекладачів: ⟨trans-uk@lists.fedoraproject.org⟩.