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 17:00 | IT novinky

Logitech dnes představil myš MX Master 3S a mechanické klávesnice MX Mechanical a MX Mechanical Mini.

Ladislav Hagara | Komentářů: 4
dnes 11:11 | Komunita

Google zveřejnil seznam 1 212 projektů od 198 organizací přijatých do letošního, již osmnáctého, Google Summer of Code.

Ladislav Hagara | Komentářů: 0
včera 23:33 | Nová verze

Byla vydána nová stabilní verze 3.16.0, tj. první z nové řady 3.16, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu.

Ladislav Hagara | Komentářů: 0
včera 19:33 | IT novinky

NoLog.cz IT kolektiv spustil Nitter.cz. Jedná se o alternativní rozhraní pro Twitter, které nesbírá osobní údaje, nevyžaduje přihlášení a všechny přístupy na Twitter provádí skrz servery NoLog.cz.

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

Byla vydána nová major verze 15 softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech GitLab (Wikipedie). Představení nových vlastností i s náhledy a videi v oficiálním oznámení.

Ladislav Hagara | Komentářů: 0
22.5. 23:00 | Nová verze

Po 9 týdnech vývoje od vydání Linuxu 5.17 oznámil Linus Torvalds vydání Linuxu 5.18 (LKML). Přehled nových vlastností a vylepšení na stránce Linux Kernel Newbies.

Ladislav Hagara | Komentářů: 0
22.5. 14:44 | Komunita

V Ubuntu 22.10 s kódovým jménem Kinetic Kudu bude zvukový server PulseAudio nahrazen multimediálním serverem PipeWire.

Ladislav Hagara | Komentářů: 19
21.5. 22:44 | Zajímavý článek

Tavis Ormandy popisuje, jak zprovoznil 32 let starý unixový port tabulkového procesoru Lotus 1-2-3 na moderním Linuxu. Doprovodné zdrojové kódy jsou na GitHubu.

Fluttershy, yay! | Komentářů: 13
21.5. 17:00 | Nová verze

Po pěti měsících vývoje od vydání verze 250 byla vydána nová verze 251 správce systému a služeb systemd (GitHub, NEWS).

Ladislav Hagara | Komentářů: 3
21.5. 15:44 | IT novinky

HP ve spolupráci se System76 představil 14" notebook HP Dev One s procesorem AMD Ryzen 7 PRO a předinstalovaným Pop!_OS Linuxem.

Ladislav Hagara | Komentářů: 20
Na sociálních sítích nebo jiných webových diskuzích vystupuji pod
 (61%)
 (16%)
 (23%)
Celkem 326 hlasů
 Komentářů: 29, poslední dnes 00:02
Rozcestník

Porovnání obsahu dvou adresářů

16.6.2005 11:47 | Přečteno: 2977×

Mám dva adresáře, které by měly obsahovat to samé, protože náhodou ten druhý vznikl různým složitým tar sem - tar tam z toho jednoho. Potřebuju si ověřit, že oba obsahy se skutečně shodují, nebo v čem se liší. diff a hotovo? Není to tak jednoduché.

diff skutečně dává možnost porovnat obsah dvou adresářů včetně podadresářů a rozumným způsobem nahlásí ty rozdíly. Jenže interpretuje symlinky a to se mu nedá rozmluvit. Symlink směřující do prázdna dokonce hlásí jako chybu. Takže pěkný, ale pro můj účel se diff nehodil.

Kdosi mi poradil ls -lR v každém z adresářů a diffem porovnat výstupy. Jenže to bych porovnal jenom módy souborů, velikost atd., ale ne skutečně obsah. Co když tar při obnově z archívu vytvořil soubor správné velikosti, ale vevnitřku samé nuly? Jednou jsem tento jev zažil, to vám byla psina. Od té doby jsem nedůvěřivej. Potom je taky ta věc, že symlinky vytvořené tarem myslím nemívají stejný čas vytvoření, takže by se mi ohlásily jako rozdílné. Totéž možná platí o device souborech (ale já jsem tam žádný neměl).

Obsah obyčejných souborů ve dvou adresářích se dá porovnat docela jednoduchým skriptem volaným z find. Stačí ověřit, že jednotlivý soubor existuje v obou adresářích a je to obyčejný soubor, a zavolat na něj cmp. To bylo pro mě částečné řešení, ale pořád jsem nevěděl, kterak porovnat symlinky.

Co třeba napsat si prográmek v Pythonu? (Nebo máte radši Perl?) No to by docela určitě šlo. Jenže to už je taková nouzovka, že jsem nad tím usnul.

Když jsem se probudil, napsal jsem

rdist -P /usr/bin/ssh -overify,compare,ignlnks,remove -c adresář_1 localhost:adresář_2

Zprávy pro puntičkáře: verify způsobí, že program nic neudělá, jenom řekne, co je potřeba. Pěkná vlastnost, že? compare se nespokojí s porovnáním velikosti a času a skutečně porovná obsah. ignlnks potlačí kontrolu cíle u symlinků. remove mi vypíše soubory, které jsou ve druhém adresáři navíc. Měl jsem běžícího ssh-agenta, takže ssh mi šlo bez hesla.

       

Hodnocení: -

zatím nehodnoceno
        špatnédobré        

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

Komentáře

Vložit další komentář

16.6.2005 12:25 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Diff
Co je špatného na

diff -qr adresář1 adresář2

?
17.6.2005 10:03 krnoha | skóre: 10 | blog: prizpevy
Rozbalit Rozbalit vše Re: Diff

Právě že to špatně zachází se symlinky. Obsah symlinku, který někam vede, to zpracuje, jako kdyby to byl rovnou ten cílový soubor. Symlink nikam nevedoucí ohlásí jako chybu. Potřeboval jsem, aby mi to porovnalo, kam symlinky ukazujou.

Josef Kufner avatar 16.6.2005 12:51 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše rsync?
co třeba rsync -n -v
Hello world ! Segmentation fault (core dumped)
17.6.2005 10:09 krnoha | skóre: 10 | blog: prizpevy
Rozbalit Rozbalit vše Re: rsync?

To jsem neznal. Vypadá to přímočařejší než rdist. Dík.

16.9.2006 13:03 Honza xxx
Rozbalit Rozbalit vše Re: Porovnání obsahu dvou adresářů
Pro Windows utilita pro porovnání obsahu dvou adresářů - 1/1 http://www.progr.cz/index.php?zobraz=clanek&id=15

Založit nové vláknoNahoru

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