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 14:11 | IT novinky

    Jihokorejská kryptoměnová burza Bithumb přiznala vážné selhání interních systémů, které ji vystavilo riziku sabotáže a nezabránilo chybné transakci v hodnotě přes 40 miliard dolarů (814 miliard Kč). Druhá největší kryptoměnová burza v Koreji minulý týden při propagační akci omylem rozeslala zákazníkům zhruba 620 000 bitcoinů místo 620 000 wonů (8700 Kč). Incident vyvolal pokles ceny bitcoinu o 17 procent. Většinu

    … více »
    Ladislav Hagara | Komentářů: 0
    dnes 13:55 | Nová verze

    Google Chrome 145 byl prohlášen za stabilní. Nejnovější stabilní verze 145.0.7632.45 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Zpátky je podpora grafického formátu JPEG XL, viz Platform Status. Odstraněna byla před třemi lety. Nový dekodér JPEG XL jxl-rs je napsán v Rustu. Zobrazování JPEG XL lze vyzkoušet na testovací stránce. Povolit lze v nastavení chrome://flags (Enable JXL image format).

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

    Byla vydána nová verze 1.26 programovacího jazyka Go (Wikipedie). Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 18:11 | Nová verze

    CrossOver, komerční produkt založený na Wine, byl vydán ve verzi 26. Přehled novinek v ChangeLogu. CrossOver 26 vychází z Wine 11.0, D3DMetal 3.0, DXMT 0.72, Wine Mono 10.4.1 a vkd3d 1.18. Do 17. února lze koupit CrossOver+ se slevou 26 %.

    Ladislav Hagara | Komentářů: 10
    včera 14:22 | Komunita

    KiCad je nově k dispozici také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo na spouštění a spustit [Mastodon, 𝕏].

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Zajímavý projekt

    Šenčenská firma Seeed Studio představila projekt levného robotického ramena reBot Arm B601, primárně coby pomůcky pro studenty a výzkumníky. Paže má 6 stupňů volnosti, dosah 650 mm a nosnost 1,5 kilogramu, podporované platformy mají být ROS1, ROS2, LeRobot, Pinocchio a Isaac Sim, krom toho bude k dispozici vlastní SDK napsané v Pythonu. Kompletní seznam součástek, videonávody a nejspíš i cena budou zveřejněny až koncem tohoto měsíce.

    … více »
    NUKE GAZA! 🎆 | Komentářů: 7
    včera 11:11 | Nová verze

    Byla vydána nová verze 36.0, tj. první stabilní verze nové řady 36, svobodného multimediálního centra MythTV (Wikipedie). Přehled novinek a vylepšení v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 1
    včera 04:44 | Nová verze

    Byl vydán LineageOS 23.2 (Mastodon). LineageOS (Wikipedie) je svobodný operační systém pro chytré telefony, tablety a set-top boxy založený na Androidu. Jedná se o nástupce CyanogenModu.

    Ladislav Hagara | Komentářů: 3
    včera 03:44 | IT novinky

    Od března budou mít uživatelé Discordu bez ověření věku pouze minimální práva vhodná pro teenagery.

    Ladislav Hagara | Komentářů: 23
    9.2. 23:43 | IT novinky

    Evropská komise (EK) předběžně shledala čínskou sociální síť pro sdílení krátkých videí TikTok návykovým designem v rozporu s unijním nařízením o digitálních službách (DSA). Komise, která je exekutivním orgánem Evropské unie a má rozsáhlé pravomoci, o tom informovala v tiskovém sdělení. TikTok v reakci uvedl, že EK o platformě vykreslila podle něj zcela nepravdivý obraz, a proto se bude bránit.… více »

    Ladislav Hagara | Komentářů: 21
    Které desktopové prostředí na Linuxu používáte?
     (19%)
     (6%)
     (0%)
     (10%)
     (26%)
     (3%)
     (5%)
     (2%)
     (12%)
     (28%)
    Celkem 837 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: tar a čtení z listu

    18.4.2024 01:10 jejda | skóre: 27 | blog: jejda
    tar a čtení z listu
    Přečteno: 792×
    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: 27 | 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: 27 | 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: 27 | 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: 27 | 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: 27 | 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: 27 | 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: 27 | 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: 27 | 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: 27 | 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: 27 | 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.