HARDLINK(1) | Команди користувача | HARDLINK(1) |
hardlink - пов'язування посиланнями декількох копій файла
hardlink [параметри] [каталог|файл]...
hardlink - інструмент, який заміняє копії файла їхніми жорсткими посиланнями або клонами копіювання-при-записі, які надають змогу заощадити місце на диску.
Спочатку, hardlink створює бінарне дерево розмірів файлів, а потім порівнює вміст файлів, які мають однаковий розмір. Передбачено два базових методів порівняння вмісту. При використанні методу memcmp програма безпосередньо читає блоки даних з файлів і порівнює її. Інший метод засновано на контрольних сумах (подібних до SHA256); у цьому випадку для кожного з блоків даних буде обчислено контрольну суму за допомогою програмного інтерфейсу шифрування ядра Linux, і цю контрольну суму буде збережено у просторі користувача і використано для порівняння.
Для кожного файла також буде кешовано «вступний» буфер (32 байти). Цей буфер буде використано незалежно від методу порівняння і запитаного розміру кешу та розміру введення-виведення. «Вступний» буфер значно зменшує потребу у діях із даними, оскільки файли дуже часто відрізняються уже початковим вмістом.
-h, --help
-V, --version
-c, --content
-b, --io-size розмір
-d, --respect-dir
-f, --respect-name
-i, --include формальний_вираз
-m, --maximize
-M, --minimize
-n, --dry-run
-o, --ignore-owner
-O, --keep-oldest
-p, --ignore-mode
-q, --quiet
-r, --cache-size розмір
-s, --minimum-size розмір
-S, --maximum-size розмір
-t, --ignore-time
-v, --verbose
-x, --exclude формальний_вираз
-X, --respect-xattrs
-y, --method назва
--reflink[=умова]
Значенням необов’язкового аргументу умова може бути never, always або auto. Якщо аргумент умова пропущено, типовим значенням є auto. У цьому випадку hardlink перевіряє тип файлової системи і використовує клони лише у BTRFS і XFS, а резервне повернення до жорстких посилань, якщо створення клону є неможливим. Значення аргументу always призводить до вимикання виявлення типу файлової системи і повернення до жорстких посилань; у цьому випадку дозволеними будуть лише клони.
--skip-reflinks
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/>.
2024-12-05 | util-linux 2.39.3 |