ordner vergleichen mit rsync
This commit is contained in:
parent
fe6a302ed3
commit
3d21c35bf8
1 changed files with 22 additions and 0 deletions
22
Tricks.md
22
Tricks.md
|
@ -118,6 +118,28 @@ benötigt. Habe ich über den Paketmanager installieren können.
|
|||
|
||||
Cisco AnyConnect ist die Datei `/opt/cisco/anyconnect/bin/vpnui`
|
||||
|
||||
#### Ordner vergleichen
|
||||
|
||||
Ich habe 2 Festplatten, die eigentlich den gleichen Inhalt haben sollten.
|
||||
Irgendwie habe ich es immer wieder hinbekommen, dass der Inhalt doch nicht
|
||||
gleich ist. Zum Vergleichen der Ordner auf den beiden Festplatten
|
||||
habe ich verschiedene Software ausprobiert: meld reagiert oft nicht,
|
||||
`diff` und `git diff` schauen sich jede Datei komplett an, was bei großen
|
||||
Filmen ewig dauert. Dann wurde ich darauf aufmerksam gemacht, dass `rsync`
|
||||
mit `--dry-run` einem diese Information geben kann:
|
||||
```sh
|
||||
rsync --size-only --itemize-changes --dry-run --verbose --recursive
|
||||
```
|
||||
Problem dabei noch: wenn die Dateien gleich, aber die timestamps unterschiedlich
|
||||
sind, werden diese Dateien mit angezeigt. Daher noch ein `grep` nachschieben:
|
||||
```sh
|
||||
rsync --size-only --itemize-changes --dry-run --verbose --recursive | grep --invert-match '^\.'
|
||||
```
|
||||
Das funktioniert, weil `--itemize-changes` Dateien, die zwar übertragen
|
||||
werden, aber keine Änderung haben, mit einem `.` am Anfang markiert.
|
||||
`'^\.'` ist eine regular expression, die ein `.` am Anfang der Zeile (`^`) beschreibt.
|
||||
(s. `man rsync`)
|
||||
|
||||
#### Bilder verkleinern
|
||||
|
||||
for i in *.jpg; do convert $i -resize 541x304 $i; done
|
||||
|
|
Loading…
Reference in a new issue