abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 01:22 | Nová verze

    Byla vydána (𝕏) zářijová aktualizace aneb nová verze 1.105 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.105 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    včera 15:33 | Komunita

    Ve Firefoxu bude lepší správa profilů (oddělené nastavení domovské stránky, nastavení lišt, instalace rozšíření, uložení hesla, přidání záložky atd.). Nový grafický správce profilů bude postupně zaváděn od 14.října.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | Nová verze

    Canonical vydal (email) Ubuntu 25.10 Questing Quokka. Přehled novinek v poznámkách k vydání. Jedná se o průběžné vydání s podporou 9 měsíců, tj. do července 2026.

    Ladislav Hagara | Komentářů: 0
    včera 12:22 | Nová verze

    ClamAV (Wikipedie), tj. multiplatformní antivirový engine s otevřeným zdrojovým kódem pro detekci trojských koní, virů, malwaru a dalších škodlivých hrozeb, byl vydán ve verzi 1.5.0.

    Ladislav Hagara | Komentářů: 0
    včera 01:22 | Nová verze

    Byla vydána nová verze 1.12.0 dynamického programovacího jazyka Julia (Wikipedie) určeného zejména pro vědecké výpočty. Přehled novinek v příspěvku na blogu a v poznámkách k vydání. Aktualizována byla také dokumentace.

    Ladislav Hagara | Komentářů: 0
    8.10. 15:11 | Bezpečnostní upozornění

    V Redisu byla nalezena a v upstreamu již opravena kritická zranitelnost CVE-2025-49844 s CVSS 10.0 (RCE, vzdálené spouštění kódu).

    Ladislav Hagara | Komentářů: 5
    8.10. 14:00 | IT novinky

    Ministr a vicepremiér pro digitalizaci Marian Jurečka dnes oznámil, že přijme rezignaci ředitele Digitální a informační agentury Martina Mesršmída, a to k 23. říjnu 2025. Mesršmíd nabídl svou funkci během minulého víkendu, kdy se DIA potýkala s problémy eDokladů, které některým občanům znepříjemnily využití možnosti prokázat se digitální občankou u volebních komisí při volbách do Poslanecké sněmovny.

    Ladislav Hagara | Komentářů: 18
    8.10. 12:33 | Zajímavý software

    Společnost Meta představila OpenZL. Jedná se o open source framework pro kompresi dat s ohledem na jejich formát. Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 0
    8.10. 03:33 | IT novinky

    Google postupně zpřístupňuje českým uživatelům Režim AI (AI Mode), tj. nový režim vyhledávání založený na umělé inteligenci. Režim AI nabízí pokročilé uvažování, multimodalitu a možnost prozkoumat jakékoliv téma do hloubky pomocí dodatečných dotazů a užitečných odkazů na weby.

    Ladislav Hagara | Komentářů: 0
    7.10. 18:11 | Nová verze

    Programovací jazyk Python byl vydán v nové major verzi 3.14.0. Podrobný přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 2
    Jaké řešení používáte k vývoji / práci?
     (38%)
     (46%)
     (15%)
     (17%)
     (21%)
     (15%)
     (17%)
     (15%)
     (15%)
    Celkem 203 hlasů
     Komentářů: 13, poslední 8.10. 07:41
    Rozcestník

    Dotaz: tar a čtení z listu

    18.4.2024 01:10 jejda | skóre: 26 | blog: jejda
    tar a čtení z listu
    Přečteno: 759×
    Ahojte! Mám seznam souborů ve kterém je několik set položek ve formátu:
    /home/user1/dir/dir/dir/dir/file
    /home/user2/dir/dir/file
    /home/user3/dir/dir/dir/dir/dir/file
    /etc/dir/dir/file
    /mnt/disk/dir/dir/dir/file
    .....
    .....
    
    Chtěl bych ty soubory zazálohovat, ale netuším jak přinutit tar aby zachoval práva a vlastníka adresářů. Spouštím to jako
    tar -czvf archiv.tgz -T filelist.txt
    U souborů v archivu jsou ty práva v pořádku, ale u adresářů tar nastaví jako vlastníka root:root a práva 0755. Prostě mi jde o to, jak z relativně rozsáhlého filesystému vyzobat soubory a ty zazálohovat i s cestou včetně práv nadřazených adresářů. Poradíte něco?

    Odpovědi

    18.4.2024 05:09 jejda | skóre: 26 | blog: jejda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Teda provizorně jsem to zatím vyřešil takto:
    archive="/home/zaloha/$(cat /etc/hostname)_$(date '+%Y-%m-%d').tar.gz"
    dir=$(mktemp -d)
    rsync -a --files-from=/home/zaloha/files.txt / $dir
    cd $dir
    tar -czvf $archive .
    chmod 600 $archive
    cd ..
    rm -r $dir
    Ale přijde mi to jako docela prasečina ty soubory někam dočasně kopírovat aby se zachovaly práva adresářů i po rozbalení. Nevíte o nějakém čistějším řešení? Možná nějak cpio a rourou přímo do taru? ...zkusím ješte poexperimentovat.
    18.4.2024 06:57 jejda | skóre: 26 | blog: jejda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Teda má to jeden zajímavý bug. Když ten archiv někam rozbalím, tak to změní práva adresáře do kterého se to rozbaluje na 0700. :-(
    21.4.2024 09:30 jejda | skóre: 26 | blog: jejda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Aha tak ono to není bug ale takova "security" fičura toho mktemp. Bezpečnější je to rozbalovat jako
    tar --one-top-level -xzf $archive
    Vyvoří to podadresář.
    18.4.2024 08:15 rastos | skóre: 63 | blog: rastos
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Existuje nástroj, ktorý je na toto ušitý: cpio. Akurát, že formát nie je "tar" ale "cpio". Zabaliť:
    cpio -ov < filelist.txt > archiv.cpio
    Rozbaliť:
    cpio -idv < archiv.cpio 
    'o' je 'output to archive'
    'v' je 'verbose' - aby písal mená súborov, ktoré spracováva
    'i' je 'input from archive'
    'd' je 'create directories as needed'

    Ak cesty k súborom obsahujú medzeru/tab/... tak jednotlivé mená súborov by mali byť oddelené nulovym bajtom a nie EOL a cpio potom treba pridať flag '0'

    Skombinovať sa to dá pekne s find ... -print resp. find ... -print0.

    18.4.2024 08:17 rastos | skóre: 63 | blog: rastos
    Rozbalit Rozbalit vše Re: tar a čtení z listu

    A prípadne sa dá pri rozbaľovaní pridať ešte

    'm' - zachovať file modification time
    18.4.2024 10:37 jejda | skóre: 26 | blog: jejda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Ono se cpio v tomto chová uplně stejně jak tar. Ty adresáře které v tom archivu fyzicky vůbec nejsou to vytváří až během rozbalování s právama toho kdo ten archiv rozbaluje. Jediné na co jsem zatím přišel je, ty soubory přechodně vykopírovat včetně cest někam ven a tam je teprv zabalit. Ale přijde mi to takové těžkopádné. Jsem tak trochu doufal, že by mohl existovat nějaký elegantnější způsob.
    21.4.2024 01:43 Jarda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    rastos: je to skvělé, jenom jestli by šla nějak zakomponovat komprimace do příkazů něco jako "cpio.gz"?
    21.4.2024 09:16 jejda | skóre: 26 | blog: jejda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Zakomprimovat to jde jednoduše rourou přes gzip
    cpio -ov < filelist.txt | gzip > archiv.cpio.gz
    a rozbalit
    zcat archiv.cpio.gz | cpio -idv
    případně se dá použít přepínač --no-absolute-filenames aby se to nerozbalilo na původní místo ale do aktuálního adresáře. Doporučuju ale mít v tom seznamu souborů taky všecky adresáře a podadresáře v cestě k souboru. Jinak se nemusí zachovat jejich původní práva.
    23.4.2024 16:16 Jarda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Moc díky za radu. Začal jsem to používat
    23.4.2024 23:04 bajus
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Vyzkoušel jsem, ale má to nějaký zvláštní omezení oproti tar.gz. Například mám Thunderbird s profilem na sdb1 a cpio.gz zabalí jenom prázdný adresář Thunderbird bez podadresáře Profiles/bajus.mail... takže vlastně nic. Ve filelistu mám cestu a Thunderbird.
    24.4.2024 14:41 jejda | skóre: 26 | blog: jejda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Tak jestli máš v tom filelistu jenom jeden řádek, cpio ti zabalí jenom jeden soubor. Neprohledává ty adresáře rekurzivně. Jestli chceš zabalit sakumprásk všecko v adresáři Thunderbird, předhoď mu jako vstup výstup programu find.
    find Thunderbird | cpio -vo | gzip > Thunderbird.cpio.gz
    nebo
    cd Thunderbird; find | cpio -vo | gzip > ../Thunderbird.cpio.gz
    Některé verze taru prý neumí číst soubory ze seznamu tam se cpio hodí použít, ale na obyčejné rekurzivní balení všeho je tar lepší.
    18.4.2024 08:24 X
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    -p, --preserve-permissions
    extract information about file permissions (default for superuser)
    
    18.4.2024 10:40 jejda | skóre: 26 | blog: jejda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Dělám to jako root, tak ten přepínač nemá nanic vliv vůbec.
    18.4.2024 12:20 Vtipnéř | skóre: 39 | blog: Vtipnéřův blog | Brno
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Dělám to jako root, tak ten přepínač nemá nanic vliv vůbec.
    Nepomohlo by přidat --same-owner (viz zde)?
    Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.
    18.4.2024 10:49 Peter Golis | skóre: 65 | blog: Bežné záležitosti | Bratislava
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    A ten zoznam zálohovaných objektov z akého dôvodu nemôže obsahovať aj priečinky (adresáre)?

    Vyextrahovať to z hootvého zoznamu cez dirname a uniq by mala byť hračka. Ale nechce sa mi to testovať.
    20.4.2024 20:28 Vlado99 | skóre: 13 | blog: vlado99
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Áno, toto je cesta. Len treba pridať --no-recursion, pretože chceme iba tie adresáre, nie všetky súbory v nich:
    #!/bin/bash
    # mapfile číta po riadkoch, tak nebude problém s medzerami v názvoch súborov
    # Ak ale súbory majú v názve "\n", chcelo by to iný prístup
    mapfile -t < list
    # Vyrobíme si ten zoznam adresárov
    for F in "${MAPFILE[@]}" ; do dirname "$F" ; done | sort -u >list-with-dirs
    # Pridáme zoznam súborov
    cat list >>list-with-dirs
    # --no-recursion zabezpečí, že sa v archíve budú iba požadované súbory a adresáre bez obsahu
    sudo tar -czf archive.tgz -C source --no-recursion -T list-with-dirs
    
    21.4.2024 08:29 jejda | skóre: 26 | blog: jejda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    To ale nebude fungovat pro vnořené adresáře. Zkus
    mkdir -p /tmp/a/b/c/d/e/f
    touch /tmp/a/b/c/d/e/f/file
    find /tmp/a -type f > /tmp/list
    mapfile -t < /tmp/list
    for F in "${MAPFILE[@]}" ; do dirname "$F" ; done | sort -u
    to vypíše jenom ten poslední adresář
    /tmp/a/b/c/d/e/f
    
    Aby to fungovalo tak by ten výstup měl vypadat nějak takto:
    /tmp
    /tmp/a
    /tmp/a/b
    /tmp/a/b/c
    /tmp/a/b/c/d
    /tmp/a/b/c/d/e
    /tmp/a/b/c/d/e/f
    21.4.2024 12:46 jejda | skóre: 26 | blog: jejda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    filelist=/tmp/filelist.txt
    dirlist=/tmp/dirlist.txt
    IFS="\n"
    t=$(mktemp)
    cat $filelist |
    while read f; do
        cd "$(dirname $f)"
        until [ "$(pwd)" = "/" ]; do
            pwd >> $t
            cd ..
        done
    done
    sort -u < $t > $dirlist 
    cat $dirlist $filelist > /tmp/list.txt
    rm $t $dirlist
    tar -czvf archive.tgz --no-recursion -T /tmp/list.txt
    Toto mi jakžtakž funguje, ale myslím že použitelné to bude maximálně do pár desítek/stovek souborů protože ta rychlost je tragická. Tak teď nevím co je menší zlo. Jestli toto nebo ten rsync :-/
    21.4.2024 22:56 Vlado99 | skóre: 13 | blog: vlado99
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Rýchlosť sa trochu zlepší, keď sa zbavíš zbytočných cd a pwd. Hlavný problém je ale v tom, že sa každý adresár vyhodnocuje stále dokola znova a znova. Toto by mohlo pomôcť:
    declare -A processed
    mapfile -t < list
    for F in "${MAPFILE[@]}" ; do
            F="$(dirname "$F")"
            while [ "$F" != "." -a "$F" != "/" ] ; do
                    test -z "${processed[$F]:+_}" || break
                    echo "$F"
                    processed[$F]=1
                    F="$(dirname "$F")"
            done
    done | sort >list-with-dirs
    cat list >>list-with-dirs
    sudo tar -czf archive.tgz -C source --no-recursion -T list-with-dirs
    
    P.S.: sort -u by už nemal byť potrebný, možno ani sort.
    22.4.2024 07:19 jejda | skóre: 26 | blog: jejda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Hm tak toto už vypadá líp. Je to asi třikrát rychlejší jak ten můj pokus. 20000 řádků to přechroupe zhruba za 15 sekund. To už se dá používat. V těch složených závorkách se odehrává nějaká magie které zatím moc nerozumím. No každopápádně děkuju.
    22.4.2024 10:45 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Jaká magie? Normální práce s obsahem a názvy proměnných.
    22.4.2024 13:18 X
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Naji si v manualu "Parametr Expansion".

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.