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 01:00 | Nová verze

    Byla vydána nová verze 24.04.28 s kódovým názvem Time After Time svobodného multiplatformního video editoru Shotcut (Wikipedie) a nová verze 7.24.0 souvisejícího frameworku MLT Multimedia Framework. Nejnovější Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    včera 16:33 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 03:22 | Zajímavý článek

    V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …

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

    Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.

    Ladislav Hagara | Komentářů: 4
    27.4. 17:44 | Nová verze

    Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    26.4. 17:11 | Nová verze

    Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.

    Ladislav Hagara | Komentářů: 12
    26.4. 13:33 | Nová verze

    Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.

    Pavel Křivánek | Komentářů: 9
    26.4. 04:55 | Zajímavý software

    Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.

    Ladislav Hagara | Komentářů: 44
    25.4. 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 14
    25.4. 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 3
    KDE Plasma 6
     (75%)
     (8%)
     (2%)
     (15%)
    Celkem 875 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Dotaz: Prazdne soubory do tar

    6.2.2007 18:45 PetrK
    Prazdne soubory do tar
    Přečteno: 214×
    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.