.: Dateien in Ubuntu verstecken II

Vor einiger Zeit habe ich darüber berichtet, wie man Dateien in Ubuntu verstecken kann, jedenfalls für Nautilus. Die Lösung dieses „Problems“ war relativ simpel. Man hatte die Wahl zwischen zwei Möglichkeiten, wobei beide ihre Vor- und Nachteile haben. So konnte man zum Einen die Datei oder den Ordner verbergen, indem man den Dateinamen dahingehend ändert, dass er mit einem „.“ beginnt oder zum Anderen indem man den Dateinamen der im selben Verzeichnis liegenden Datei „.hidden“ hinzufügt.

Ersteres hat den klaren Nachteil, dass man den kompletten Namen ändern muss, was man bei den meisten vordefinierten Dateien nicht machen kann. Die zweite Möglichkeit hat leider den Nachteil, dass beim Umbenennen der Datei die Referenz in der .hidden-Datei nicht auch automatisch mit umbenannt wird.

Mir gefällt die Idee mit der .hidden-Datei zwar nicht so sehr wie der Windows-Ansatz, bei dem ein bestimmtes Bit die Sichtbarkeit einer Datei bestimmt. Trotzdem ziehe ich sie der anderen Möglichkeit mit dem „.“ vor. Leider bietet Nautilus ja nicht von Haus aus die Mechanismen Dateien zu verstecken. Also hab ich zwei Skripte geschrieben, die das Verhalten nachträglich implementieren.

Anfangs hatte ich versucht die gewünschten Funktionen mit Python umzusetzen, allerdings merkte ich schnell, dass meine Überlegungen zu kompliziert waren. Ich kann nämlich davon ausgehen, dass die Einträge der .hidden relativ gering sind. Also entschloss ich mich das Problem auf simpelste Art und Weise mit Linux-Bordmittel zu lösen.

Beim Verstecken einer Datei wird erst überprüft, ob schon Eintrag in der .hidden vorhanden ist. Ist dies nicht der Fall, wird ein neuer Eintrag am Ende der Datei erstellt.

for arg
do
if grep -q „${arg}“ „.hidden“
then :
else echo „${arg}“ >> „.hidden“
fi
done

Leider sieht man hier deutlich, dass ich es nicht geschafft habe den Rückgabewert von grep zu negieren. Denn dann hätte ich mir das überflüssige „then :“ gespart. Über einen aufschlussreichen Kommentar würde ich mich sehr freuen :) – die Verwendung von grep -v brachte keinen Erfolg :/

Soll die Datei nun wieder sichtbar gemacht werden, wird bloß der Eintrag in der .hidden gelöscht. Die eigentliche Arbeit hierbei übernimmt das Tool sed.

for arg
do
sed -i „/${arg}/d“ „.hidden“
done

Zum Schluss sei noch angemerkt, dass das Wiki von uus.de anscheinend fehlerhaft ist, denn dort steht dass man folgendes

FILES=${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS}
for FILE in „${FILES}“ ; do
# do something
done

verwenden muss um das Skript auf alle markieriten Dateien anwenden zu können. Bei mir hat das leider nicht funktioniert. Durch Zufall bin ich auf dwo jie Verwendung arg gestoßen. Ich werde mich wohl demnächst mal bei uus anmelden und den Eintrag korrigieren.

Um diese beiden Scripte zu installieren, müssen die Dateien „hide“ und „unhide“ aus dem tar.gz-Archiv nach „~/.gnome2/nautilus-scripts/“ entpackt werden. Ich habe mir -der Übersicht wegen- noch einen Unterordner „Visibility“ erstellt.

PS: Die beiden Skripte funktionieren selbstverständlich auch für Ordner :)

Eine Antwort schreiben