HARDLINK(1)

НАЗИВ
hardlink - повезује више примерака датотеке

УВОД

hardlink [опције] директоријум|датотека...

ОПИС

hardlink је алат који замењује умношке датотека или чврстим везама или клоновима „умножи-при-писању“, штедећи простор тако.

hardlink прво ствара бинарно стабло величина датотека а затим пореди садржај датотека које имају исту величину. Постоје две основне методе поређења садржаја. memcmp метода директно чита блокове података из датотека и пореди их. Друга метода се заснива на сумама провере (као SHA256) у том случају за сваки блок података суму провере израчунава крипто АПИ Линукс кернела, и та сума провере се смешта у корисников простор и користи за поређење датотека.

За сваку датотеку такође се смешта „уводна“ међумеморија (32 бајта). Ова међумеморија се користи независно од методе поређења и захтеване величине оставе и уи-величине. „Уводна“ међумеморија значајно смањује радње са садржајем података јер се датотеке често разликују од почетка.

ОПЦИЈЕ

-c, --content
    Разматра само садржај датотеке, а не атрибуте, када одређује да ли су две датотеке једнаке. Исто као -pot.

-b, --io-size величина
    Величина read(2) или sendfile(2) међумеморије коришћене приликом поређења садржаја датотека. За аргументом величина могу да следе суфикси множитеља KiB, MiB, итд. „iB“ је изборно, тј., „K“ значи исто што и „KiB“. Основно је 8KiB за „memcmp“ методу и 1MiB за остале методе. Само „memcmp“ метода користи меморију процеса за међумеморију, остале методе користе начин нултог умножавања а У/И радња се обавља у кернелу. Величина може бити измењена у лету да би испунила број сума провере кешираног садржаја.

-d, --respect-dir
    Само покушава да повеже датотеке са истим називом директоријума. Директоријум највишег нивоа (као што је наведено у командној линији за hardlink) се занемарује. На пример, hardlink --respect-dir /foo /bar ће повезати /foo/нека/датотека са /bar/нека/датотека, али не и /bar/друга/датотека. Ако се комбинује са --respect-name, онда се упоређују читаве путање (осим директоријума највишег нивоа).

-f, --respect-name
    Само покушава да повеже датотеке са истим називом(основе). Строго се препоручује коришћење дугих опција уместо -f која се тумачи на други начин од стране других hardlink примена.

-F, --prioritize-trees
    Задржава датотеке пронађене у раније наведеном директоријуму највишег нивоа ако има више истоветних датотека у разним стаблима. На пример, hardlink foo/ bar/ ће свезати датотеке у „bar/“ са истим датотекама у директоријуму „foo/“.

-i, --include рег_израз
    Регуларни израз за обухват датотека. Ако је опција --exclude дата, ова опција поново обухвата датотеке које у супротном не би биле обухваћене. Ако је опција коришћена без --exclude, обухваћене су само датотеке поклопљене шаблоном.

-m, --maximize
    Од једнаких датотека, задржава датотеку са већим бројем веза.

-M, --minimize
    Од једнаких датотека, задржава датотеку са мањим бројем веза.

-n, --dry-run
    Не делује, само исписује шта ће се десити.

-l, --list-duplicates
    Не свезује ништа, али исписује апсолутну путању сваке удвостручене датотеке, једну у реду, испред које иде јединствени 16-битни дискриминатор и табулатор.

-z, --zero
    Раздваја редове са НИШТА уместо новим редом у -l режиму.

-o, --ignore-owner
    Повезује и упоређује датотеке чак и ако се подаци њихових власника (корисника и групае) разликују. Резултати могу бити непредвидиви.

-O, --keep-oldest
    Од једнаких датотека, задржава најстарију датотеку (најстарије време измене) По основи, новија датотека се задржава. Ако је наведено --maximize или --minimize, број везе има предност у односу на време измене.

-p, --ignore-mode
    Повезује и упоређује датотеке чак и ако се њихов режим разликује. Резултати могу бити мало непредвидиви.

-q, --quiet
    Тихи режим, не исписује ништа.

-r, --cashe-size величина
    Величина оставе за суме провере садржаја. Све не-„memcmp“ методе израчунавају суму провере за сваки блок садржаја датотеке (видите --io-size), те суме провере се одлажу за следеће поређење. Величина је важна за велике датотеке или велике скупове датотека исте величине. Основно је 10MiB.

-s, --minimum-size величина
    Најмања величина за узимање у обзир. По основи то је 1, тако да празне датотеке неће бити повезане. За аргументом величина може да следи суфикс множитељ KiB (=1024), MiB (=1024*1024), и тако редом за GiB, TiB, PiB, EiB, ZiB и YiB. („iB“ није обавезно, нпр., „K“ има исто значење као „KiB“).

-S, --maximum-size величина
    Најмања величина за узимање у обзир. По основи то је 0, и 0 има посебно значење неограничености. За аргументом величина може да следи суфикс множитељ KiB (=1024), MiB (=1024*1024), и тако редом за GiB, TiB, PiB, EiB, ZiB и YiB. („iB“ није обавезно, нпр., „K“ има исто значење као „KiB“).

-t, --ignore-time
    Повезује и упоређује датотеке чак и ако се њихова времена измене разликују. Ово је обично добар избор.

-v, --verbose
    Опширан излаз, објашњава кориснику шта је урађено, ако до тада није схватио. Ако је наведено једном, свака чврсто свезана датотека се приказује, ако је наведено два пута, такође приказује сваку успоредбу.

-x, --exclude рег_израз
    Регуларни израз који искључује датотеке из упоређивања и повезивања. Ова опција се може користити више пута.

--exclude-subtree регизраз
    Регуларни израз који искључује читаве директоријуме из упоређивања и повезивања. Ова опција се такође може користити више пута.

--mount
    Не прелази директоријуме на различитим системима датотека (остаје у истом систему датотека).

-X, --respect-xattrs
    Само покушава да повеже датотеке са истим проширеним атрибутима.

-y, --method назив
    Поставља методу поређења садржаја датотеке. Тренутно подржане методе су „sha256“, „sha1“, „crc32c“ и „memcmp“. Основно је „sha256“, или „memcmp“ ако „Linux Crypto API“ није доступно. Методе засноване на сумама провере се примењују на начин нултог умножавања, у том случају садржаји датотека се не умножавају у кориснички простор а сав прорачун се ради у кернелу.

--reflink[=када]
    Ствара клонове умножене при писању (тј. везе упуте) уместо чврстих веза. Упутно свезане датотеке деле податке само на диску, али режим датотеке и власник могу бити другачији. Препоручује се да се користи са опцијама --ignore-owner и --ignore-mode. Ова опција подразумева --skip-reflinks да би се занемариле већ клониране датотеке.

    Опционални аргумент када може бити never (никада), always (увек), или auto. Ако је аргумент када изостављен, подразумева се auto, у том случају, hardlink проверава врсту система датотека и користи упутне везе само на BTRFS и XFS, и пребацује се на чврсте везе када стварање упутне везе није могуће. Аргумент always искључује откривање врсте система датотека и пребацује се на чврсте везе, у том случају, допуштене су само чврсте везе.

--skip-reflinks
    Занемарује већ клониране датотеке. Ова опција се може користити без --reflink приликом стварања класичних чврстих веза.

-h, --help
    Приказује текст помоћи и излази.

-V, --version
    Исписује издање и излази.

АРГУМЕНТИ

hardlink узима један или више директоријума у којима ће се тражити датотеке за повезивање.

ОКРУЖЕЊЕ

ULFILEEQ_DEBUG=all
    Укључује излаз прочишћавања за поређење датотека.

ГРЕШКЕ

Изворна примена hardlink-а користи опцију -f да примора стварање чврстих веза између система датотека. Ова врло ретко коришћена функција више није подржана од стране текућег hardlink-а.

hardlink претпоставља да се стабло над којим ради не мења за време радње. Ако се стабло измени, резултат је недефинисан и потенцијално опасан. На пример, ако се редовна датотека замени уређајем, hardlink може почети да чита са уређаја. Ако се састојак путање замени симболичком везом или се измене овлашћења датотеке, безбедност може бити доведена у питање. Не покрећите hardlink на измењивом стаблу или на стаблу које контролише други корисник.

АУТОР

Постоји више примена hardlink-а. Најстарију примену је урадио Јакуб Јелинек за дистрибуцију Федоре, ова примена је коришћена у „util-linux“ између издања v2.34 и v2.36. Текућа примена је заснована на Дебијановом издању које је приредио Жилјан Андре Клод.

ПРИЈАВЉИВАЊЕ ГРЕШАКА

За пријављивање грешака, користите „https://github.com/util-linux/util-linux/issues[issue tracker]“.

ДОСТУПНОСТ

Наредба hardlink је део „util-linux“ пакета који се може преузети са