====== Verzeichnisse ======
===== wieder ausführbar =====
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...
===== Sonderzeichen =====
// 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//.
===== Sicherheitskopien =====
//rekursiv löschen//
Soll ein kompletter Verzeichnisbaum von Sicherheitskopien befreit werden, bietet sich ebenfalls der ''find''-Befehl an:
find -name "*~" -exec rm {} \;
===== Platzbedarf =====
Um herauszufinden, welcher böse Bube wieder mal den Server bis zum Rand mit Unsinn gefüllt hat, gibt es verschiedene Möglichkeiten:
- Zunächst als root anmelden und z.B. ins Verzeichnis ''/home/Schuler'' wechseln. Dann:
du * -s | sort -n > /root/plattennutzung.txt
- Oder so:
du * -s | sort -n | less
- Oder so:
find . -type f -exec ls '{}' ';'
===== User Dateien =====
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
===== Dateinamen klein kopieren =====
Mit dem ''mc'' alle Dateien markieren, F6 zum kopieren, dann::
von * nach \L*
Optionen: shell pattern und Unterverzeichnisse