Jämföra två kataloger och få skillnaden - hur?

Tråden skapades och har fått 11 svar. Det senaste inlägget skrevs .
1

Jag behöver jämföra två kataloger som ska innehålla samma material men inte gör det.
Jag behöver alltså få fram skillnaden mellan de två, vilka filer som finns i mapp1 men inte inte mapp2.

Kan jag använda rsync på något sätt?

  • Medlem
  • Stockholm
  • 2007-02-21 09:47

Textwrangler kan i alla fall få ut innehållet som textrader, går det inte sedan att jämföra dessa på något sätt?

/Tangen

Det är alldeles för mycket data för att sitta om jämföra det manuellt.
Behöver få det automatiskt på något sätt. Men jag tror jag kommer gå till rsync för hjälp.
mapp1 har allt den ska ha men inte mapp2.
Men det vore intressant att få veta vad det är som skiljer dem åt.

  • Medlem
  • Stockholm
  • 2007-02-21 10:06

Jo, ag fattar att det blir lite pyssligt att sitta och läsa det, men jag har sett här på forumet i en annan disskussion, att man kunde jämföra två textfiler och veta vad som skiljer dom åt, hade nåt med webutveckling att göra, men kommer inte ihåg exakt.

Som du säger så kan nog rsync vara en lösning men jag har inte en sportmössa om hur man gör

/Tangen

  • Medlem
  • Umeå
  • 2007-02-21 10:06

du kan köra följande.
du -a katalog1 > fil1 #skapar en textfil med namnen på alla filer som finns i katalog1
du -a katalog2 > fil2 #skapar en textfil med namnen på alla filer som finns i katalog2
diff fil1 fil2 #jämför filerna och visar skillnaderna.

ex. på utdata från diff fil1 fil2
146c146
< 1456 Desktop//rack1.png #Denna fil finns bara i fil1, dvs bara i katalog1
---
> 1456 Desktop//Rack1.png #Denna fil finns bara i fil2, dvs bara i katalog2

  • Medlem
  • Stockholm
  • 2007-02-21 11:09
Ursprungligen av Narogh:

diff fil1 fil2 #jämför filerna och visar skillnaderna.

Kommandot comm låter dig styra mer vilka skillnader du vill se. Kolla man-sidan.
T.ex. visa bara de filer som finns i katalog1 och inte i katalog2:

$ comm -2 -3 fil1 fil2

  • Medlem
  • Stockholm
  • 2007-02-21 11:15
Ursprungligen av Narogh:

du -a katalog1 > fil1 #skapar en textfil med namnen på alla filer som finns i katalog1
du -a katalog2 > fil2 #skapar en textfil med namnen på alla filer som finns i katalog2

Tyvärr kommer alla filer att vara olika eftersom "katalog1" kommer att skrivas i pathen.

$ (cd katalog1; find . ) | sort > fil1

... Gör att fillistan ser lika ut oavsett katalog. Dessutom sorteras listan (om den inte redan skulle vara det) så att diff eller comm kan fungera.

Till kommandot find kan man dessutom ge en hel del switchar om du t.ex. bara skulle vilja ha en viss filtyp, eller om du inte vill rota för långt ner i underkataloger.

Ahhhh Narogh! Tack!

  • Medlem
  • Stockholm
  • 2007-02-21 11:31

Mattias,

Google är din vän...

Fann bl.a. denna Automator action...

- Torkel

  • Medlem
  • Malmö
  • 2007-02-21 14:01

Har du Eclipse så går detta att göra på ett väldigt smidigt sätt... i den kan du välja att jämföra två kataloger med varandra...

Då får du upp alla filer som skiljer sig, och för textfiler kan du få upp en vy liknande denna bild

  • Medlem
  • Stockholm
  • 2007-02-21 14:07

Eller programmet FileMerge (sök i Spotlight) som man får om man installerar OS X developer tools.

  • Medlem
  • Malmö
  • 2007-02-21 15:24
Ursprungligen av pesc:

Eller programmet FileMerge (sök i Spotlight) som man får om man installerar OS X developer tools.

Aha... underbart program... ska jag använda hädanefter.

1
Bevaka tråden