Mitä hakemistovertailutyökaluja voin käyttää OS X: ssä?
On helmikuu 10, 2021 by adminEtsin työkalua, joka pystyy vertailemaan hakemistoja, ei vain tiedostoja. Lisäksi on tärkeää, että työkalua voidaan kutsua komentoriviltä.
Olisi hienoa saada ilmainen työkalu, ellei ilmainen, ilmoita hinta.
Vastaa
Kaikille googlereille … tutustu Beyond Compare -sääntöihin. Kustannukset 30 tai 50 dollaria Pro-versiolle.
Kommentit
- Yritän yleensä välttää kaupallisten ratkaisujen suosittelemista, kun ilmaisia ja avoimen lähdekoodin vaihtoehtoja on olemassa, mutta BeyondCompare on erityistapaus, jossa se kannattaa jokaisen sentin … ja on myös monialustainen. Olen käyttänyt sitä yli 10 vuotta ja odottanut kauan MacOS-version saamista.
- Nyt on huhtikuu 2020 ja pro-versio maksaa nyt 60 dollaria.
- I ’ olemme kokeilleet kaikkia tämän sivun ratkaisuja, ja mielestäni Beyond Compare on 100% paras ja arvoisin suositus.
Vastaa
FileMerge (ilmainen), toimitettu Xcooden kanssa, tarjoaa hakemistonäkymän.
Komentoriviversio on saatavana Terminal-sovelluksen opendiffin kautta.
Näin voit verrata kahta hakemistoa FileMergeen:
- ⌘ + välilyönti, kirjoita ”FileMerge” ja avaa se.
- Napsauta vasenta painiketta ja valitse kansio, josta haluat siirtää kohteet. (Vanha kansio)
- Napsauta oikeaa painiketta ja valitse haluamasi kansio. haluaa siirtää kohteet kohtaan. (”uusi” kansio) ja napsauttaa ”Vertaa” -painiketta.
- Valitse oikeanpuoleisessa paneelissa poissulkeminen: ”identtinen” ja ”Muutettu oikealle”. y näet tiedostot, jotka puuttuvat ”uudesta” kansiosta, ja ohitat mahdollisesti lisäämäsi tiedostot ”uuteen” kansioon.
- Siirrä tiedostoja manuaalisesti Finderissa tai anna FileMergen tehdä se valitsemalla vaihtoehto Yhdistä-pudotusvalikko oikeassa paneelissa.
Kommentit
- Haluan valita tämän vastauksen, koska
opendiff
voidaan pitää melkein ” mukana ” OS X: n kanssa, mutta kun yritän erottaa kahta kansiota, se avasi ruma näkymä, jota ei ollut niin helppo ymmärtää, enkä myöskään voinut nähdä, miten voin yhdistää kaksi tiedostoa tiedostonäkymässä. Olen ’ varma, että se on mahdollista, mutta jos tämä perusominaisuus ei ole ilmeinen, etsin mieluummin jotain parempaa;) - FileMerge ei ole yhtä hyvä kuin BeyondCompare, pitkällä laukauksella. Mutta se on ilmainen, ja yhden kerran vaaditaan, että ’ on etsimäni hinta 🙂
Vastaa
Sisäänrakennettu apuohjelma MacOS: lle ja Linuxille
Jos et halua käyttää päätelaitetta, diff
-komento voi verrata hakemistoja.
Tämä apuohjelma on käytettävissä myös useimmissa Linux-jakeluissa.
diff -rq directory1/ directory2/
-r
osoittaa toistumisen alihakemistojen kautta, ja -q
antaa lyhyen tuloksen (ts. älä näytä todellisia eroja, huomioi vain tiedostot / osoitteet, jotka ovat erilaisia).
Muita hyödyllisiä vaihtoehtoja ovat:
-s
raportoi identtiset tiedostot,
-i
ohita tiedoston sisällön kirjainkoko,
--ignore-file-name-case
ohita tapaus verrattaessa tiedostojen nimiä.
Jos haluat välttää varoituksia (enimmäkseen hyödyllisyysvaroituksia) eroista .DS_Store
tiedostot ja käytä sitten:
diff -rq directory1/ directory2/ | grep -v .DS_Store
kommentit
- Voit sulkea alikansiot pois suoraan tekemällä
diff --exclude node_modules
- vielä parempi, osaa käyttää
diff -x node_modules
Vastaa
Diffmerge : n tulee täyttää kaikki vaatimukset.
Kommentit
- Toivon vain, että he tekevät asentajan joka pystyy asentamaan komentorivin käynnistimet ja parantamaan nykyistä asennuskokemusta.
- Tämä on vanha aihe – mutta asensin sen
brew cask install diffmerge
-palvelun kautta ja se asensi ilman ongelmia. - Huhtikuu 2016: Se on edelleen ylläpidetty ja edelleen yksi kehitystyökalustani.
- FWIW Yritin
brew cask install diffmerge
tänään (kesäkuu 2020) ja kun yritin suorittaa diffmergeä, sain hälytyslaatikon, joka kertoi minulle, että MacOS ei ollut ’ aio suorittaa ohjelmaa, koska se voi ”>
t vahvista kehittäjä. (diffmerge ei suoritettu)
open
? Vastaa
Toinen siisti työkalu tämän saavuttamiseksi on rsync, kuvattu kohdassa Unix & Linux StackExchange .Voit vertailla kahta kansiota tekemällä
rsync -avun $SOURCE $TARGET
Ja jos olet todella huolissasi tiedostojen yhdenmukaisuudesta / bittirotista, on myös c-vaihtoehto tiedostojen tarkistussummien vertaamiseen
rsync -avnc $SOURCE $TARGET
Kommentit
- Erinomainen viite sen hyödyllisyydestä kaikissa Unixissa .
vastaus
Ostin äskettäin kopion Kaleidoskoopista (noin 40 dollaria USA: ssa). Se on puhdas sovellus.
vimdiff on saatavana myös komentoriviltä ja se on kannettava useimmissa UNIXy-verkkotunnuksissa.
Kommentit
- Olen ’ käyttänyt Kaleidoskooppia muutaman kuukauden ajan. Kannattaa hintaa. Se myydään toisinaan.
- Kaleidoskooppi ei salli sinun muokata tiedostoa, turha!
- Kaleidoskoopin hinta App Storessa vuonna 2020: 74,99 eur
Vastaus
Kokeile tehokasta avoimen lähdekoodin ohjelmistoa sulautettu . Mac-versio löytyy osoitteesta Meld for OSX . Se tukee sekä hakemistojen että tiedostojen vertailua ja toimii hyvin Macissa.
Minua kehotettiin parantamaan tätä vastaa ja selitä, miksi meld on hyvä. Yleisesti ottaen Meld on täysominaisuuksien vertailuohjelmisto, jota käytetään pääasiassa GNOME: ssa. Se on parempi kuin monet tässä luetellut ohjelmistot, koska
- se on ilmainen ja avoimen lähdekoodin Joten yo sinun ei tarvitse huolehtia maksusta tai turvallisuudesta.
- ellei se ole tehokkaampi, se on yhtä hienostunut kuin monet ohjelmistot, jotka kysyvät sinulta paljon rahaa
- se on käyttäjän ystävällinen ja siihen ei liity monimutkaista kokoonpanoa tai komentokomentoa päätelaitteessa. Sinun pitäisi pystyä käyttämään sitä heti asennuksen jälkeen.
Se osa, joka ei ole niin hyvä, saattaa olla se, että se on kehitetty GTK: n alla. Joten joskus se ei tunnu luonnon MAC-ohjelmilta. Lisäksi vanhat MAC-versiot olivat hieman bugisia. Mutta viimeisin 3.19.2, jota käytän tällä hetkellä, toimii hyvin, enkä ole koskaan kohdannut ongelmaa.
Kommentit
- Myös asennus on helppoa
brew cask install meld
Vastaa
Mukana toimitettava diff-työkalu div id = ”ae088c955f”>
Bare Bones Softwaren teksti Wrangler sisältää hakemistovertailun, vaikka se näyttää vain, mitkä tiedostot ovat molemmissa hakemistoissa ja mitkä vain kussakin hakemistossa. Kun valitset tiedosto, jota molemmissa voit muokata yhdistämällä muutokset rivi riviltä napin painalluksella. Se ei kuitenkaan anna sinun siirtää tiedostoja. Sinun on tehtävä tämä ulkoisesti (esim. Finderin kautta).
Minusta se on yksi parhaista ilmaisista vaihtoehdoista.
Vastaa
Käytän kansion synkronointia . Se maksaa 8,99 dollaria Mac App Store Se toimii todella hienosti.
Vastaa
Olen vertaillut suuria kansiorakenteita (DVD) Aikaisemmin olin kehittänyt komentorivi-apuohjelman tähän tarkoitukseen. Olen äskettäin tehnyt apuohjelman (CrcCheckCopy) ilmaiseksi ja monitasoiseksi (MacOS ja Windows).
CrcCheckCopy etsii lähdekansiota ja tiedosto, joka sisältää kaikkien tiedostojen CRC-leimat. Sitten tätä tiedostoa käytetään kohdekansion vertaamiseen.
Saat sen täältä: https://www.starmessagesoftware.com/crccheckcopy Palautteesi sinua arvostetaan suuresti.
Vastaa
Muutokset -sovellus (37,19 dollaria) oli aikoinaan minun suruni rkforce tähän. Se on yhtä hyvä kuin Beyond Compare.
Huomaa: Toivon, että tämän laadunvalvonnan sallitaan olemassa, vaikka se onkin vähintään SO-normien vastainen tuotteille. MacOS: n käyttökelpoisen, intuitiivisen, graafisen hakemistojen vertailutyökalun tarve on edelleen akuutti. Avoimen lähdekoodin ehdokkaat eivät ole saavuttaneet kaupallisten työkalujen käytettävyyden tasoa.
Vastaa
Jos osaat käyttää Pythonia , tässä on komentosarja, jonka kirjoitin jokin aika sitten kahden hakemiston tehokasta vertaamista varten.
Ominaisuudet:
- se voi verrata puurakenteita ja tiedostomuutoksia (tiedostokoon perusteella & MD5-tiivistelmät)
- voi poistaa tiedostojen vertailun käytöstä ja näyttää vain puurakenteen muutokset (erittäin nopeasti!)
- voi poistaa tiedostosisällön vertailun käytöstä , vedoten vain tiedostokoon muutoksiin (taas hyvin nopeasti)
- voi värittää tuotoksen luettavuuden parantamiseksi.
Ja luonnollisesti voi muokata tarpeidesi mukaan, jos osaat ohjelmoida.
#!/usr/bin/env python3 """ A script to recursively compare two directories (including file size and file hash changes) Usage: python3 compare_dirs.py DIR1 DIR2 """ import os, sys, hashlib COMPARE_FILES = True # should file sizes be compared if their names are the same? MD5 = True # should file hash sums be compared if their names and sizes are the same? COLORIZE = False # colorization for bash (only Linux & Unix) def md5sum(fn): hasher = hashlib.md5() with open(fn, "rb") as f: hasher.update(f.read()) return hasher.hexdigest() WHITE, RED, GREEN = 15, 196, 46 fg = lambda text, color: "\33[38;5;" + str(color) + "m" + text + "\33[0m" def compare_dirs(d1: "old directory name", d2: "new directory name"): def print_local(a, msg): text = "{} {} {}".format("DIR " if a[2] else "FILE", a[1], msg) if COLORIZE: color = {"added": GREEN, "removed": RED}.get(msg, WHITE) print(fg(text, color)) else: print(text) # Ensure validity for d in [d1,d2]: if not os.path.isdir(d): raise ValueError("not a directory: " + d) # Get relative path l1 = [(fn, os.path.join(d1, fn)) for fn in os.listdir(d1)] l2 = [(fn, os.path.join(d2, fn)) for fn in os.listdir(d2)] # Determine type: directory or file? l1 = sorted([(fn, pth, os.path.isdir(pth)) for fn, pth in l1]) l2 = sorted([(fn, pth, os.path.isdir(pth)) for fn, pth in l2]) i1 = i2 = 0 cnt = 0 common_dirs = [] while i1<len(l1) and i2<len(l2): if l1[i1][0] == l2[i2][0]: # same name if l1[i1][2] == l2[i2][2]: # same type if l1[i1][2]: # Pair of directories -> remember the name for recursion common_dirs.append((l1[i1][1], l2[i2][1])) elif COMPARE_FILES: # Pair of files -> compare their sizes size1 = os.stat(l1[i1][1]).st_size size2 = os.stat(l2[i2][1]).st_size if size1!=size2: print_local(l1[i1],"size changed: {:d} -> {:d}".format(size1, size2)) elif MD5: # Sizes are the same -> compare MD5 hashes if md5sum(l1[i1][1])!=md5sum(l2[i2][1]): print_local(l1[i1],"hash changed") else: print_local(l1[i1],"type changed") i1 += 1 i2 += 1 elif l1[i1][0]<l2[i2][0]: print_local(l1[i1],"removed") i1 += 1 elif l1[i1][0]>l2[i2][0]: print_local(l2[i2],"added") i2 += 1 cnt += 1 while i1<len(l1): print_local(l1[i1],"removed") i1 += 1 cnt += 1 while i2<len(l2): print_local(l2[i2],"added") i2 += 1 cnt += 1 # Compare subfolders recursively for sdir1,sdir2 in common_dirs: cnt += compare_dirs(sdir1, sdir2) return cnt if __name__=="__main__": print ("Comparing files {}abled".format("en" if COMPARE_FILES else "dis")) print ("MD5 checking {}abled".format("en" if MD5 else "dis")) print ("Colorization {}abled".format("en" if COLORIZE else "dis")) print (compare_dirs(sys.argv[1], sys.argv[2]), "items compared")
Linkitä GitHub Gistiin.
HUOMAUTUS: se ei toimi tiedostoissa tai alihakemistoissa, jotka on siirretty iCloudiin.
Vastaa
Helpoin tapa ratkaisu: Synkronoi tiedostoja Dropboxia tai vastaavaa käyttäen, käytä sitten vain WinMergeä Windowsissa.
FileMerge-apuohjelma, joka toimitetaan Xcoden mukana, ei vertaa kansioita eikä tee yhdistämistä / muokkaamista.
Vastaa