Wie finde und vergleiche ich ähnliche Dateien im Dropbox-Ordner?

1546
pcapademic

Ich verwende Dropbox, und ich
komme mit einer Reihe von Dateien wie: prefs (Heimkonfliktkopie 2009-07-20) .js

Was ich gerne tun würde, ist, alle Dateien mit "konfliktbehafteten Kopien ..." zu finden und diese dann mit ihrer unkonfliktierten Version zu vergleichen.

Der folgende Befehl liefert beispielsweise das Ergebnis:

$ find . -name "*onflict*" -exec ls -ld {} \; -rw-r--r-- 1 eric eric 24203 2009-07-19 14:42 ./prefs (home's conflicted copy 2009-07-20).js 

aber ich möchte eine Ausgabe wie:

-rw-r--r-- 1 eric eric 24429 2009-07-21 11:43 prefs.js -rw-r--r-- 1 eric eric 24203 2009-07-19 14:42 prefs (home's conflicted copy 2009-07-20).js 

und dann kann ich entscheiden, was ich mit der widersprüchlichen Kopie machen möchte. Irgendwelche Ideen?

2

2 Antworten auf die Frage

2
pcapademic

Ich habe etwas herausgefunden, das zu funktionieren scheint, aber ich würde mich über Verbesserungsvorschläge freuen, unter anderem um es sauberer zu machen:

find . -name "*onflict*" | while read name; do ls -ld "$name"; ls -ld "$"; echo -n "$name" | xargs -0 -p rm ; echo ; done 

In einem leichter lesbaren und eingetippten Format:

find . -name "*onflict*" | \ while read name; do  ls -ld "$name" ls -ld "$" echo -n "$name" | xargs -0 -p rm  echo  done 

Verweise:

0
Stefan Thyberg

Nachdem Sie den konfliktierten Dateinamen abgeglichen haben, verwenden Sie einen regulären Ausdruck, um die Klammern und Leerzeichen durch einen Stern zu ersetzen.

ls -d "prefs*.js" 
Übrigens, das Beispiel ls -d "prefs * .js" ist ein Beispiel für die Erweiterung der Shell-Dateinamen oder die Übereinstimmung von Shell-Mustern. Diese Funktionalität ist eine Teilmenge von regulären Ausdrücken. pcapademic vor 14 Jahren 0
Aber wie wende ich regulären Ausdruck auf {} in der Option find -exec an? pcapademic vor 14 Jahren 0
Vielleicht möchten Sie stattdessen eine Perl-Version davon schreiben, aber ich wette, es könnte mit nur einer Zeile mit awk / sed geschrieben werden. Ich kann es nicht beschreiben. Stefan Thyberg vor 14 Jahren 0