Alles unter Kontrolle?


© Mai 2021, Letzte Änderung 31.08.24

--- still under construction ---

Übersicht

diff

Zum Zeilenweisen vergleichen von vorzugsweise Text-Dateien,
bietet sich  diff  an.
Diff kann auch rekursiv für Ordner verwendet werden.
Die wichtigsten Parameter sind folgende.

Z.B. Vergleich zweier Ordner.

diff -rq a0.0 a0.1

Die Ausgabe ist jedoch etwas mager, sodaß es mehr Sinn macht
cmp zu verwenden.

In Zusammenhang mit hexdump könnte es interessant sein.

hexdump -C obrm1.001 > obrm1.hex
hexdump -C obrm2.001 > obrm2.hex
diff obrm1.hex obrm2.hex
17c17
< 00007e20  20 99 07 00 00 01 29 67  36 68 4a 20 20 20 20 20  | .....)g6hJ     |
---
> 00007e20  20 99 07 00 00 00 29 67  36 68 4a 20 20 20 20 20  | .....)g6hJ     |
…

Quellen

computerhope.com   Linux diff command
linuxhandbook.com   Using Diff Command to Compare Two Files in Linux Terminal
linux-console.net   So vergleichen Sie Binärdateien unter Linux

Zum Anfang

cmp

cmp   kann verwendet werden zum binären Vergleich zweier Dateien.
Spezielle Anwendung mit dd.

dd if=/dev/dvd | cmp tmp.iso

Ein weiteres Beispiel - Vergleich zweier Dateien.

cmp -l obrm.001 obrm2.001
     32294   1   0
     97059   0 377
     97060   0 377
…

Quellen

howtoforge.de   Linux cmp Befehl Tutorial für Anfänger (7 Beispiele)
geeksforgeeks.org   cmp Command in Linux with examples

Zum Anfang

md5sum

md5sum – Checksumme
-c check via Dateiliste
-C create
-rr alles recursiv in eine Datei
-t type
-f file
-p dir z.B. -p /home/m/Desktop
--showpaths=y
-a yes, absolute

Md5sum Linuxmint-13.iso
md5sum -c pfSense-2.2.2-RELEASE-4g-i386-nanobsd-vga.img.gz.md5
md5sum /dev/dvd

Zum Anfang

sha256sum

-b binary
-t text ist Default

sha256sum -b avira-rescue-system.iso 
18d52cc4dc7b3759969774f41747e8a4e1223a8da504d8a582fb15919f4ea61c *avira-rescue-system.iso
Um Scheksummen aller Dateien zu erzeugen.

find /mnt/sda3/a0/ -type f -exec sha256sum {} \; > ~/sda3-files.sha256

Zum Anfang

cfv

-m search only for missing files
-C create mode
-v verbose
-r separate chksum for each dir
-L don't follow symlinks
-T test mode
-rr create single file
-n rename bad files
-f file

sfv file name -uu show each unverfied file -t type can be sfv sfvmd5 csv csv2 csv4 sha1 md5 par...

Exit status: 2 bad crc 4 bad size 8 not found 16 file error 32 unverfied 64 checksum error

cfv -C -t sfv -rr -f test-sfv
→ *.sfv	Abi86/Abi1986_01.jpg cbee9db2  ...
cfv -C -rr -t sfvmd5
→ *.md5	Abi86/Abi1986_01.jpg db6bf75b470fb5f33169ccf35cfa94b1...
bevorzugte Formatierung:
cfv -C -rr -t md5
→ *.md5	db6bf75b470fb5f33169ccf35cfa94b1 *Abi86/Abi1986_01.jpg
Überprüfung mit: siehe http://cfv.sourceforge.net/cfv.1.html oder http://unix.stackexchange.com/questions/203973/generate-sfv-file-optimizing-hard-links

Zum Anfang

fdupes - Dupletten finden

fdupes duff dupseek fslint baobab sind mögliche Programme um Dupletten zu finden.

fdupes
apt-get install fdupes

-r recursive
-N ohne Prompt (löscht ohne Nachfrage)
-L Hardlinks erstellen, statt Löschen
-m Platzbedarf durch Doppelbelegung
-f 1.Datei weglassen
-d 1.Datei erhalten, Rest auf Rückfrage löschen

Zunächst einmal eine Liste der Dupletten rekursiv erstellen mit Fortschrittsanzeige Oder Dupletten finden ohne Fortschrittsanzeige

fdupes -r /home/hd1/a | tee dup1.txt				mit Anzeige
fdupes -r ./ > dup1.txt						aktuelles Verzeichnis
fdupes -rd ./								löscht mit Rückfrage

Löschliste erstellen, wobei 1. Datei nicht aufgeführt ist -f = omitfirst

fdupes -rf /home/a | tee dup2.txt         ohne erste Datei
dup1,txt mit dup2.txt vergleichen
vimdiff dup1.txt dup2.txt                 paket vim 29 MB
comm ~/dup1.txt ~/dup2.txt                paket comm nicht gefundenen
diff -uNr dup1.txt dup2.txt > dup3.txt    erstellt zusammengefügte Datei

Ergebnis Zeilenweise sortieren
-f Gruß/Klein-schreibung ignorieren
-o file Schreibt Ergebnis in Datei
-d nur alphanumerische Zeichen beachten [a – z; A – Z, 0 - 9]
+0M -1 +1n -2 nach Datum sortieren

sort $filelist-from-rf | uniq | grep -v '^$' > $removelist	nicht getestet

bearbeite die Löschliste, lösche Leerzeilen und lösche entsprechende Zeilen

while read file; do rm -v "$file"; done < $removelist

statt der while do Schleife

for file in `cat $removelist`; do rm -v “$file”; done    geht nicht
rm $(removelist)                    macht Probleme bei chr(32)
cat removelist | while read datei; do rm "$datei"; done

erstellt Hardlinks anstatt der Dupletten

fdupes -rL /home/a
Siehe https://krausens-online.de/fdupes-duplikate-finden/

Zum Anfang

freedup

freedup - Dupletten durch Links ersetzen. Unter Freedup.org freedup runter laden

-d überprüft Zeitstempelabfrage
-u User gleich?
-f überprüft Dateinamensgleichheit
-g Gruppen gleich?
-c /a /b Vergleicht Ordner /a mit Ordner /b
-t Methode z.B. sha512, md5, etc.

dpkg --install freedup.deb
freedup -cf /home/Musik/_music\ unsortiert\ alt/

Zum Anfang

Quellen

hifi-selbstbau.de   Lautsprecher Grundlagen: Gehäuse, Frequenzweiche, Raumakustik, etc.

Zum Anfang