Jeg tror du kan gå ved å bruke 3 verktøy: cmp er bedre for binære filer og diff er bedre for tekstfiler For binære filer diff viser bare om de ikke er forskjellige. diff fungerer også for kataloger. En av de to første kan oppnå det du trenger stille. diff bruker - q-bryteren og cmp bruker - s-bryteren for å fortelle deg bare en returkode: 0 hvis de to filene samsvarer 1 hvis ikke. cmp har også et fint alternativ for å unngå (slags) å lese hele filen (bra hvis du har store filer): hvis du vet at filene kan variere i de første N linjene eller mellom linje N og M du kan gjøre (dvs. rad N 10 og M 20): Jeg har lagt til md5sum på listen fordi hvis du har mulighet til å beregne MD5 sjekksummen hver gang du redigerer en av disse filene, kan du bare sammenligne det for å raskt finne ut om de samsvarer eller ikke. I dette tilfellet antar jeg at du har mye fil å sammenligne. besvart 25. okt 10 kl. 9:23. En av de vanligste måtene å avgjøre om to filer er identiske (forutsatt at deres størrelser samsvarer), bruker et program for å lage en hash (hovedsakelig et fingeravtrykk) av en fil. De vanligste er md5sum og sha1sum. Hvis du har mange filer som du må sjekke, for eksempel hvis du overfører en katalog full av filer fra ett system til et annet, kan du omdirigere utgangen fra det opprinnelige systemet til en fil, så kan md5sum sha1sum automatisk bruke den filen til Fortell deg hvilke filer som er forskjellige: Besvart Apr 29 10 kl 12:21 MD5 er ikke alltid en pålitelig for dette: diggsecurityhellip ndash Jon Cage 29 Apr 10 kl 12:30 MD5 er faktisk pålitelig for grunnleggende integritetskontroller. Det er bare ikke vurdert som kryptografisk sterk som vi en gang trodde. Hvis du er bekymret for hackere, bruk ikke MD5, men hvis du bare vil vite om noen filer som er kopiert fra en CD, blir ødelagt, eller hvis kompilatoren spytter ut identiske filer hver gang, er MD5 mer enn tilstrekkelig. ndash Adam Batkin 29 Apr 10 kl 12: 55Jeg foretrekker VBinDiff. DHEX bruker CPU selv når det er tomgang, tror jeg at det er på nytt hele tiden eller noe. VBinDiff virker imidlertid ikke med store terminaler. Men adressene blir uvant med brede terminaler uansett, siden du har mer enn 16 byte per rad. ndash Janus Troelsen 17 okt 12 kl 14:22 Prøv diff i følgende kombinasjon av zshbash-prosess-substitusjon og kolordiff i CLI: - y viser forskjeller side ved side (valgfritt) xxd er CLI-verktøy for å lage en hexdump-utgang av binæret fil colordiff vil fargelegge diff-utdata (installer via: sudo apt-get install colordiff) legg til - W200 for diff for bredere utdata hvis filene er store, legg til grense (f. eks - l1000) for hver xxd Metode som fungerer for byte tilleggsletting Utgang for en enkelt NUL byte-fjerning ved den 100. byte av en stor fil: Hvis du også vil se ASCII-versjonen av tegnet: Testet på Ubuntu 14.04. Jeg foretrekker od over xxd fordi: det er POSIX. xxd er ikke (følger med Vim) har - An å fjerne adressekolonnen uten awk. - Vi fjerner adressekolonnen. Dette er viktig ellers vil alle linjer variere etter at en byte-tilleggs fjerning er fjernet. - w1 setter en byte per linje, slik at diff kan forbruke den. Det er avgjørende å ha en byte per linje, ellers hver linje etter at en sletting ville bli ute av fase og avvike. Dessverre er dette ikke POSIX, men finnes i GNU. - tx1 er den representasjonen du vil, bytt til enhver mulig verdi, så lenge du beholder 1 byte per linje. - V forhindrer forkortelse av stjerneopprepning som kan forstyrre diff-lim - d - - knytter seg til hver to linjer. Vi trenger det fordi heksen og ASCII går inn i separate tilstøtende linjer. Hentet fra: stackoverflowquestions8987257concatenating-hver-andre-linje-med-neste-vi bruker parentes () for å definere bdiff i stedet for å begrense omfanget av den indre funksjonen f. se også: stackoverflowquestions8426077how-to-define-a-function-inside-another-function-in-bash svarte Apr 4 15 at 20:31 Når du bruker hexdumps og text diff for å sammenligne binære filer, spesielt xxd. tilleggene og flyttingene av bytes blir skift i adressering som kan gjøre det vanskelig å se. Denne metoden forteller at xxd ikke har utdataadresser, og å bare sende ut en byte per linje, som igjen viser nøyaktig hvilke byte som ble endret, lagt til eller fjernet. Du kan finne adressene senere ved å søke etter de interessante sekvensene av byte i en mer normal hexdump (utgang av xxd first. bin). besvart apr 22 15 kl 12:10
Comments
Post a Comment