Duplikate mit fdupes finden

Wer im Terminal unter macOS Duplikate finden möchte, kann hierfür auf fdupes zurückgreifen. Nach der Installation mittels:

brew install fdupes

kann das Werkzeug im geünschten Ordner genutzt werden:

fdupes -r .

In diesem Fall wird der aktuelle Ordner rekursiv nach Duplikaten durchsucht. Anschließend werden diese Duplikate dargestellt:

./FolderA/file-01.bin
./FolderB/file-01.bin

./FolderA/file-02.bin
./FolderB/file-02.bin

./FolderA/file-03.bin
./FolderB/file-03.bin

Bei dieser Operation werden keinerlei Dateien gelöscht. Dazu bietet fdupes unter anderem einen interaktiven Modus an:

fupes -r -d .

Nach der Ermittlung der Duplikate kann anschließend die Auswahl getroffen werden, welche Dateien nicht gelöscht werden sollen:

Set 17 of 108:

[ ] ./FolderA/file-17.bin
[ ] ./FolderB/file-17.bin

( Preserve files [1 - 2, all, help] )= 1

Ist der interaktive Modus nicht gewünscht, so kann die Löschung auch automatisiert werden. Das Kommando:

fdupes -r -d -N .

behält immer automatisch die erste Datei und löscht alle anderen Duplikate. Damit eignet sich fdupes besonders gut, um große Dateibestände schnell und effizient von doppelten Dateien zu bereinigen und dabei wahlweise die volle Kontrolle zu behalten oder den Vorgang vollständig zu automatisieren.

SSH-Schlüssel auf einer Storage Box von Hetzner installieren

Die Storage Boxen von Hetzner werden unter anderem gerne für Backups von Servern genutzt. Damit ein solchen mit entsprechenden Werkzeugen wie Restic erstellt werden können, ist meist ein SSH-Zugang vonnöten. Um den öffentlichen Schlüssel des Servers auf die Storage Box zu übertragen, kann folgender Befehl genutzt werden:

cat ~/.ssh/id_ed25519.pub  | ssh -p23  install-ssh-key

Nach der Abfrage des Passwortes für die Storage Box wird der Schlüssel übertragen und damit automatisch beim Aufbau einer SSH-Verbindung genutzt.

Endianness bei ROMs korrigieren

Einige ROMs wie z.B. vom Nintendo 64 sind als Big Endian gespeichert. Je nach Dump, kann es aber vorkommen das diese im Little Endian-Format gesichert wurde. Bei Big Endian wird das höchstwertige Byte zuerst gespeichert, während Little Endian mit dem niedrigstwertigen Byte beginnt. Soll die Bit-Reihenfolge umgedreht werden, so kann hierfür das Werkzeug uCON64 genutzt werden. Nach der Installation mittels Homebrew:

brew install ucon64

kann das Tool genutzt werden. Es kann dabei mit einer Vielzahl an ROM-Formaten umgehen. Mit diesem Skript können die Dateien in ihre Big Endian-Form konvertiert werden:

#!/bin/sh
find . -type f \( -iname "*.n64" -o -iname "*.v64" -o -iname "*.z64" \) -print0 |
while IFS= read -r -d '' f; do
  if ucon64 "$f" | grep -q "Interleaved/Swapped: Yes"; then
    ucon64 --nbak --swap "$f"
  fi
done

Auf diese Weise wird sichergestellt, dass alle ROMs im einheitlichen und historisch korrekteren Format vorliegen.

Häufigkeit der Dateiendungen in einem Verzeichnis analysieren

Gerade bei größeren Projekten oder gewachsenen Verzeichnisstrukturen stellt sich manchmal die Frage, welche Dateitypen in dem Verzeichnis enthalten sind. Im Terminal lässt sich diese Frage mit dem Befehl:

find . -type f | awk -F. 'NF>1 {print $NF}' | sort | uniq -c | sort -nr

beantworten. Als Ergebnis erhält der Nutzer eine Liste mit der Häufigkeit und den Änderungen:

478 toml
380 txt
141 lua
56 ini

Zu Berücksichtigen ist das Dateien ohne Endung vollständig ignoriert werden, bei Dateinamen mit mehreren Punkten (z. B. backup.tar.gz) wird ausschließlich die letzte Endung berücksichtigt und zudem erfolgt keine Vereinheitlichung der Groß- und Kleinschreibung, sodass beispielsweise JPG und jpg als unterschiedliche Endungen behandelt werden.

Festplatte unter macOS sicher löschen

Wer eine Festplatte unter macOS sicher löschen möchte, kann hierfür unter anderem diskutil im Terminal nutzen. Im ersten Schritt sollte hierzu die gewünschte Festplatte ermittelt werden:

diskutil list

In der Auflistung muss nun die passende Festplatte ermittelt werden:

/dev/disk20 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *121.3 GB   disk20
   1:                        EFI EFI                     209.7 MB   disk20s1
   2:       Microsoft Basic Data EXTERNAL                121.1 GB   disk20s2

Für eine sichere Löschung kann dann die Option secureErase genutzt werden:

diskutil secureErase 0 disk20

Anschließend startet der Löschvorgang:

Started erase on disk20
[ / 0%................................................... ] 2.8% 

Je nach Größe der Festplatte kann die Löschung einige Stunden in Anspruch nehmen.