09.04.2014 Aufrufe

Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...

Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...

Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

A Musterlösungen 231<br />

6.22 Harte Links brauchen fast keinen Platz, da es sich dabei nur um zusätzliche<br />

Verzeichniseinträge handelt. Symbolische Links sind eigene Dateien und kosten<br />

darum zumin<strong>des</strong>t schon mal ein Inode (jede Datei braucht ein eigenes Inode). Dazu<br />

kommt der Speicherplatz für den Namen der Zieldatei. Prinzipiell wird Plattenplatz<br />

an Dateien in Einheiten der Blockgröße <strong>des</strong> Dateisystems vergeben (also<br />

1 KiB und mehr), aber im ext2- und ext3-Dateisystem gibt es eine spezielle Ausnahme<br />

für »kurze« symbolische Links (kleiner als ca. 60 Bytes), die im Inode selber<br />

gespeichert werden und keinen Datenblock brauchen. Fortgeschrittene Dateisysteme<br />

wie das Reiser-Dateisystem gehen von sich aus sehr effizient mit kurzen<br />

Dateien um, so dass auch dort der Platzbedarf für symbolische Links vernachlässigbar<br />

sein dürfte.<br />

6.23 Ein mögliches Kommando wäre »find / -size +1024k -print«.<br />

6.24 Der grundlegende Ansatz ist etwas wie<br />

find . -maxdepth 1 ⟨Tests⟩ -ok rm '{}' \;<br />

<strong>Die</strong> ⟨Tests⟩ sollten dabei die Datei so eindeutig wie möglich bestimmen. Das<br />

»-maxdepth 1« sorgt dafür, dass Unterverzeichnisse nicht durchsucht werden. Im<br />

naheliegendsten Fall verschaffen Sie sich mit »ls -i« die Inodenummer der Datei<br />

(zum Beispiel 4711) und löschen Sie dann mit<br />

find . -maxdepth 1 -inum 4711 -exec rm -f '{}' \;<br />

6.25 Schreiben Sie in die Datei .bash_logout in Ihrem Heimatverzeichnis etwas<br />

wie<br />

find /tmp -user $LOGNAME -type f -exec rm '{}' \;<br />

oder – effizienter –<br />

find /tmp -user $LOGNAME -type f -print0 \<br />

| xargs -0 -r rm -f<br />

(in der Umgebungsvariablen LOGNAME steht der aktuelle Benutzername).<br />

6.26 Verwenden Sie ein Kommando wie »locate '*/README'«. Natürlich würde<br />

»find / -name README« es auch tun, aber das braucht viel länger.<br />

6.27 Direkt nach dem Anlegen steht die neue Datei nicht in der Datenbank und<br />

wird entsprechend auch nicht gefunden (Sie müssen erst updatedb laufen lassen).<br />

<strong>Die</strong> Datenbank bekommt auch nichts davon mit, dass Sie die Datei gelöscht haben,<br />

bis Sie wiederum updatedb aufrufen. – Am geschicktesten rufen Sie updatedb<br />

übrigens nicht direkt auf, sondern über das Shellskript, das auch Ihre Distribution<br />

benutzt (etwa /etc/cron.daily/find bei Debian GNU/<strong>Linux</strong>). Auf diese Weise<br />

stellen Sie sicher, dass updatedb dieselben Parameter verwendet wie sonst auch immer.<br />

6.28 slocate sollte nur diejenigen Dateinamen ausgeben, auf die der aufrufende<br />

Benutzer auch zugreifen darf. <strong>Die</strong> Datei /etc/shadow, in der die verschlüsselten<br />

Kennwörter der Benutzer stehen, ist dem Systemverwalter vorbehalten (siehe<br />

auch <strong>Linux</strong>-Administration I).<br />

6.29 Sie sollten mit »whereis« zwei Dateien namens /usr/share/man/man1/crontab.<br />

1.gz und /usr/share/man/man5/crontab.5.gz finden. <strong>Die</strong> erstere enthält die Dokumentation<br />

für das eigentliche crontab-Kommando, die letztere die Dokumentation für<br />

das Dateiformat, das Sie mit crontab anlegen können. (<strong>Die</strong> Details sind für diese<br />

Aufgabe nicht wichtig; siehe <strong>Linux</strong> für Fortgeschrittene.)<br />

Copyright © 2012 <strong>Linup</strong> <strong>Front</strong> GmbH

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!