abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

    dnes 13:33 | Komunita Ladislav Hagara | Komentářů: 1
    dnes 13:22 | Komunita

    Richard Hughes na svém blogu oznámil, že počet aktualizací firmwarů pomocí služby LVFS (Linux Vendor Firmware Service) přesáhl 100 milionů. Přehled podporovaných zařízení, nejnovějších firmwarů nebo zapojených výrobců na stránkách LVFS.

    Ladislav Hagara | Komentářů: 0
    dnes 12:55 | Nová verze

    Byla vydána nová stabilní verze 3.19.0, tj. první z nové řady 3.19, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Z novinek lze vypíchnou podporu Raspberry Pi 5.

    Ladislav Hagara | Komentářů: 0
    dnes 12:22 | Zajímavý software

    Altap Salamander (Wikipedie), dvoupanelový správce souborů pro Windows, byl uvolněn jako open source pod názvem Open Salamander. Zdrojové kódy jsou k dispozici na GitHubu pod licencí GPLv2.

    Ladislav Hagara | Komentářů: 2
    dnes 07:00 | IT novinky

    Společnost JetBrains představila (YouTube) svou umělou inteligenci JetBrains AI a nástroj AI Assistant v IDE.

    Ladislav Hagara | Komentářů: 6
    včera 22:33 | Nová verze

    Byla vydána nová verze 255 správce systému a služeb systemd (GitHub, NEWS). Z novinek lze vypíchnout například novou službu systemd-bsod.service.

    Ladislav Hagara | Komentářů: 0
    včera 18:44 | IT novinky

    Google představil Gemini, svůj největší a nejschopnější model umělé inteligence.

    Ladislav Hagara | Komentářů: 0
    včera 16:44 | Komunita

    openSUSE komunita vybírá nová loga. Jedním z cílů je odlišit se od SUSE. Aktuálně probíhá hlasování o logu openSUSE a čtyř distribucí Tumbleweed, Leap, Slowroll a Kalpa.

    Ladislav Hagara | Komentářů: 6
    včera 13:22 | Nová verze

    Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2023-12-05. Přehled novinek v příspěvku na blogu a poznámkách k vydání. Nově jej lze používat také s tmavým tématem.

    Ladislav Hagara | Komentářů: 1
    včera 08:00 | Humor

    Dnes je to 10 let, co byla vytvořena decentralizovaná kryptoměna Dogecoin. Autoři Billy Markus a Jackson Palmer ji původně zamýšleli jako vtip. Znakem kryptoměny je pes Shiba-Inu známý z internetových memů.

    JZD | Komentářů: 11
     (37%)
     (13%)
     (51%)
    Celkem 79 hlasů
     Komentářů: 2, poslední včera 22:12
    Rozcestník

    Dotaz: Prazdne soubory do tar

    6.2.2007 18:45 PetrK
    Prazdne soubory do tar
    Přečteno: 212×
    Ahoj,
    asi to uvedu na prikladu. Dejme tomu ze mam /home/ferda/mp3/ a tam nekolikset mp3, a ja bych chtel udelat jejich seznam, tim ze ty soubory zabalim do tar, ale s nulovou velikosti(i s jejich cestou..). Da se to udelat nejak elegantne? Me napada jedine napred nekde vytvorit soubory se stejnym nazvem(ale prazdny) a ty pak zabalit.
    dik.

    Odpovědi

    Prcek avatar 6.2.2007 19:00 Prcek | skóre: 43 | Jindřichův Hradec / Brno
    Rozbalit Rozbalit vše Re: Prazdne soubory do tar
    A samotny seznam souboru v textovem souboru by nestacil?

    Pokud to chces udelat pres prazdne soubory, tak me napada treba skriptem cist vsechna jmena souboru v adresari a ty pak prikazem touch vytvaret (vytvori se soubor o nulove delce). Vyslednou hromadu prazdnych souboru pak muzes zabalit tarem.
    Člověk je takový, jak vypadá... A já vypadám jako pravá, nefalšovaná děvka!!!
    6.2.2007 21:09 iSteve | skóre: 15 | blog: isteve
    Rozbalit Rozbalit vše Re: Prazdne soubory do tar
    A proc? Ponevadz sou tam i metadata? To je pitomost. Pouzij stat(1).

    Pokud bys na tom trval, neni problem to napsat, tar format je celkem jednoduchej (kdyz pominem GNU aj. extenze), ale porad trvam na tom, ze je to pitomost:)
    6.2.2007 23:18 PetrK
    Rozbalit Rozbalit vše Re: Prazdne soubory do tar
    Nj, ona to zase takova blbost neni:)
    , asi hlavni duvod je zachovani stromove struktury. Nechci to pouzivat jen na mp3, a seznam jako
    /home/ferda/mp3/VVV/sf.mp3

    /home/ferda/mp3/VVV/ssf.mp3
    /home/ferda/mp3/VVV/rsaf.mp3
    /home/ferda/mp3/RSF/ad.mp3
    .....


    Akorat ze treba pro 1000 souboru se mi zdaj maximalne neprehledny:)
    7.2.2007 06:10 iSteve | skóre: 15 | blog: isteve
    Rozbalit Rozbalit vše Re: Prazdne soubory do tar
    Ale ano, je -- nebo vubec nechapu, o co ti vlastne jde:) Presne stejne (nebo s relativnimi cestami, ale to umis samozrejme taky i jinak) je v taru ulozen seznam souboru taky. Muzes mi najit deset rozdilu mezi (krom lomitka na konci nazvu adresare, coz se da dodelat trivialne, pokud te nejak vic trapi):
    isteve@silver:~$ tar -cf test1.tar ./junk/
    isteve@silver:~$ tar -tf test1.tar 
    ./junk/
    ./junk/file1
    ./junk/file2
    ./junk/file3
    
    a
    
    isteve@silver:~$ find ./junk
    ./junk
    ./junk/file1
    ./junk/file2
    ./junk/file3
    
    6.2.2007 21:22 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Prazdne soubory do tar
    S tím tarem si nejsem jistý. Myslím, že neumí zabalit obsah roury, takže možností je asi několik
    # seznam souborů do souboru
    find adresar -type -f -printf "%P\n" > seznam
    # pripadne zatarovat
    tar -cf seznam.tar seznam
    # nebo radeji primo gzipnout
    find adresar -type -f -printf "%P\n" | gzip > seznam.gz
    # jde prohlizet pomoci zcat, zless, prohledavat pres zgrep, ...
    zless seznam.gz
    
    When your hammer is C++, everything begins to look like a thumb.
    7.2.2007 00:36 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Prazdne soubory do tar
    Využiju toho, že se zde nedávno podobná věc řešila:

    http://www.abclinuxu.cz/forum/show/167572#10

    a jen trochu pozměním ten prográmek:
    #!/usr/bin/env python
    import os, sys
    srcdir = os.path.realpath(sys.argv[1])
    destdir = sys.argv[2]
    
    srchead, srctail = os.path.split(srcdir)
    srcheadlen = len(srchead)
    newdir = os.path.join(destdir, srctail)
    print 'creating root dir', newdir
    os.mkdir(newdir)
    for root, dirs, files in os.walk(srcdir):
        relroot = root[srcheadlen + 1:]
        for dirname in dirs:
            newdir = os.path.join(destdir, relroot, dirname)
            print 'creating dir ', newdir
            os.mkdir(newdir)
        for filename in sorted(files):
            newfile = os.path.join(destdir, relroot, filename)
            print 'creating file', newfile
    
    Programu se zadávají dva parametry: cesta k originálnímu adresáři a cesta k adresáři, v němž se má udělat ta prázdná kopie.
    7.2.2007 01:39 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Prazdne soubory do tar
    Že mě to nenapadlo dřív! Vždyť python má přímou podporu pro zacházení s tarem (i tar.bz2), takže je možné projít celý strom a zaarchivovat ho, přičemž každé položce se nastaví nulová velikost. Všechny ostatní atributy se zachovají.
    #!/usr/bin/env python
    import tarfile, os, sys
    tarname = sys.argv[1]
    srcdir = os.path.realpath(sys.argv[2])
    srchead, srctail = os.path.split(srcdir)
    srcheadlen = len(srchead)
    
    tar = tarfile.open(tarname + '.tar.bz2', 'w:bz2')
    for root, dirs, files in os.walk(srcdir):
        relroot = root[srcheadlen + 1:]
        for item in dirs + files:
            fullpath = os.path.join(root, item)
            relpath = os.path.join(relroot, item)
            print fullpath, relpath        
            tarinfo = tar.gettarinfo(fullpath, relpath)
            tarinfo.size = 0
            tar.addfile(tarinfo)
    tar.close()
    
    Skriptu se zadají dva parametry: název archivu (bez koncovky) a cesta k adresáři pro archivaci. Vytvoří se soubor s koncovkou tar.bz2. A co mě úplně dostalo je to, že po rozbalení vznikne textový soubor, který připomíná výstup 'ls -l'. To jsem fakt nevěděl.
    7.2.2007 23:13 PetrK
    Rozbalit Rozbalit vše Re: Prazdne soubory do tar
    juu,
    to je presne ono;) Jste moc hodnej. Sam bych to asi jen tak nenapsal:)
    8.2.2007 07:41 rastos | skóre: 62 | blog: rastos
    Rozbalit Rozbalit vše Re: Prazdne soubory do tar
    Keď máš kladivo, každý problém vyzerá ako kliniec ;-). Potrebujš python na to aby si urobil
    
    cd /archive
    mkdir -p `cd /home/ferda/mp3; find . -type d -print`
    cd /home/ferda/mp3
    find . -type f -exec touch /archive/{} \;
    ?
    8.2.2007 10:09 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Prazdne soubory do tar
    Python opravdu potřebuji, když nechci skript v shellu, který
    -nefunguje, jsou-li v názvech adresářů mezery
    -ničí informaci o datu a čase
    -výsledek neuloží do taru
    -musí procházet adresářový strom dvakrát
    -pouští jeden externí program mockrát po sobě
    -má v sobě natvrdo napsané cesty
    -mění svůj vlastní pracovní adresář (ano, považuji to za špatné)
    -běží pomaleji
    -má mizivou možnost ladících výpisů
    -je téměř nemožné nějak vylepšovat

    Ale kdybych strašně spěchal a šlo mi o počet popsaných řádků, tak bych to možná v shellu napsal. Ale ono by se to časem vymstilo.
    8.2.2007 18:16 PetrK
    Rozbalit Rozbalit vše Re: Prazdne soubory do tar
    Jsem tu zase:)
    Maximalne s tebou souhlasim, jen jsem narazil jeste na jeden problem:(

    Traceback (most recent call last):
    File "All2tar.py", line 17, in ?
    tar.addfile(tarinfo)
    File "/usr/lib/python2.3/tarfile.py", line 1270, in addfile
    raise ValueError, "name is too long (>%d)" \
    ValueError: name is too long (>100)

    Da se nejak dosahnout toho aby mu nevadilo vic jak 100 znaku v ceste? Dik
    8.2.2007 19:06 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Prazdne soubory do tar
    Aha, to je zrada. Máš starý python 2.3, který defaultně dodržuje posix standard a podle něj nesmí mít cesta v taru víc než sto znaků. Od Pythonu 2.4 už se přešlo na GNU rozšíření, které už takové omezení nemá. Pomoc je snadná - zakázat posix řádkem "tar.posix = False". Raději ukážu celý program:
    #!/usr/bin/env python
    import tarfile, os, sys
    tarname = sys.argv[1]
    srcdir = os.path.realpath(sys.argv[2])
    srchead, srctail = os.path.split(srcdir)
    srcheadlen = len(srchead)
    
    tar = tarfile.open(tarname + '.tar.bz2', 'w:bz2')
    tar.posix = False
    for root, dirs, files in os.walk(srcdir):
        relroot = root[srcheadlen + 1:]
        for item in dirs + files:
            fullpath = os.path.join(root, item)
            relpath = os.path.join(relroot, item)
            print fullpath, relpath        
            tarinfo = tar.gettarinfo(fullpath, relpath)
            tarinfo.size = 0
            tar.addfile(tarinfo)
    tar.close()
    
    Bude to fungovat teď? To jsem sám zvědav.
    9.2.2007 20:44 PetrK
    Rozbalit Rozbalit vše Re: Prazdne soubory do tar
    Jojo, ted to slape dobre a rychle. Diky moc:)

    PS.: Na ten Python se budu muset taky poradne mrknout.
    8.2.2007 14:54 Tomáš | skóre: 31 | blog: Tomik
    Rozbalit Rozbalit vše Re: Prazdne soubory do tar
    Mozna blba otazka, uz jsi videl disksearch? http://disksearch.sourceforge.net/. Pokud jenom potrebujes mit seznam souboru s velikosti a hledat podle nazvu, tak je to presne ono. Ted jsem k tomu dodelaval podporu pro export do XML a tisk obalu CD/DVD (ale myslim, ze to Stefan jeste necommitnul).

    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.