Kopiert man Verzeichnisse nicht korekt von CDs auf die Festplatte, so sind oft sämtliche Dateien ausführbar - oder keine. Wenn kein Verzeichnis mehr ausführbar ist, hilft die folgende Zeile:
find * -type d -exec chmod ug+x {} \;
{} steht dabei jeweils für die gefundene Datei. Dem find
-Befehl muss noch gesagt werde, wo der exec
-Parameter aufhört. Das macht man mit einem Semikolon. Damit die bash
aber weiß, dass das Semikolon kein Parameter ist, muss der Backslash davor. Jedenfalls so ähnlich war das…
Hat man größere Verzeichnisstränge, geht der folgende Befehl schneller:
find * -type d | xargs chmod g+rx
Aber irgendwie hatte ich da mal Probleme mit Leerzeichen in Verzeichnisnamen. Ich glaube der chmod
hat sich daran verschluckt…
in Datei-/Verzeichnissnamen in utf8 umwandeln
Wenn ich das richtig verstanden habe, verstehen iso9660-CDs und DVDs utf8 für Datei- und Verzeichnisnamen. Hat man einen Verzeichnisbaum, der anders codiert ist, rettet folgende nette Zeile:
convmv --notest -r -f latin1 -t utf8 /Verzeichnis
Hat man ein wenig Angst davor, kann man erst mal –notest
weglassen. Dann sagt er erst mal nur, was er machen würde.
rekursiv löschen
Soll ein kompletter Verzeichnisbaum von Sicherheitskopien befreit werden, bietet sich ebenfalls der find
-Befehl an:
find -name "*~" -exec rm {} \;
Um herauszufinden, welcher böse Bube wieder mal den Server bis zum Rand mit Unsinn gefüllt hat, gibt es verschiedene Möglichkeiten:
/home/Schuler
wechseln. Dann: du * -s | sort -n > /root/plattennutzung.txt
du * -s | sort -n | less
find . -type f -exec ls '{}' ';'
Folgende Zeile zeigt alle Dateien im home
-Verzeichnis des Benutzers claudius
mit Größe an. Außerdem ist die Ausgabe der Größe nach sortiert.
find /home/* -type f -user claudius -printf "%k %p %u \n" | sort -n > claudius.txt
Mit dem mc
alle Dateien markieren, F6 zum kopieren, dann::
von * nach \L* Optionen: shell pattern und Unterverzeichnisse