Navigationsleiste  |    Direktzugriff   |    Kurs  |     Home  

Linux-Kurs: Umgang mit Dateien




Dateien ansehen


Einer der meistbenutzten Befehle ist wohl ls (steht für LiSt ), du kennst diesen Befehl schon aus dem vorherigen Teil.
Dieser Befehl hat auch eine Reihe von Parameter, hier mal kurz die Wichtigsten:

Kurzform Parameter Beschreibung
-a --all zeigt auch die versteckten Dateien an
  --color zeigt die unterschiedlichen Dateitypen in verschiedenen Farben an
(Bei den meisten Distributionen voreingestellt)
-l --format=long zeigt zusätzlich zum Datei-Namen dar, sehr gut zum Kombinieren mit anderen Parametern
-r --reverse dreht die Reihenfolge der Sortierung um, Nützlich mit -S oder -t
-S --sort=size sortiert nach der Größe , die größte zuerst
-t --sort=time sortiert nach Zeitpunkt der letzten Änderung , die neueste zuerst
-u --sort=access sortiert nach Zeitpunkt des letzten lesenden Zugriffs, muß mit -t kombiniert werden
-X    --sort=extension sortiert nach Erweiterung ( also. txt .html .jpg)

Folgendes solltest du aber beachten, es gilt für (fast) alle Linux-Befehle:
Zum Ausprobieren der Befehle, wechselst du am besten ins Verzeichnis /etc:

[tux]$ cd /etc


Die Ausgabe des Befehls ls -l gshadow (im Verzeichnis /etc) werde ich etwas erklären:

[tux] /etc$ ls -l gshadow
-rw-r----- 1 root shadow 1279 Jan 31 14:21 gshadow

Das sagt uns folgendes:
Was das alles im Klartest heißt, wird im Laufe des Kurses erklärt, fürs Erste sollte es reichen ;-)


Verzeichnisse

Verzeichnisse werden wie Ordner (darum heißen sie auch unter Windows so) genutzt. In einem Verzeichnis kannst du mehrere Dateien oder Verzeichnisse aufbewahren.
Das oberste Verzeichnisse ist das root-Verzeichnis, aber nicht wie der Benutzer root, sondern wie root=Wurzel. All anderen Verzeichnisse hängen unterhalb des root-Verzeichnisses:

Das ist nur ein Beispiel!

Der Befehl pwd ( Print Working Directory ), zeigt dir an in welchem Verzeichnis du gerade bist. Außerdem kannst du es an deinem Prompt sehen.

[tux] /etc$ pwd
/etc


Verzeichnis wechseln

Ich glaube diesen Befehl kennt jeder der jemals an einem Rechner gesessen hat: cd, er steht für ChangeDirectory Einfach mal eingeben:

[tux] /etc$ cd
[tux] ~$


Was ist passiert?
Du bist in deinem Homeverzeichnis gelandet! Das erkennst du daran, daß in deinen Prompt ein "~" steht. Bist du nicht in deinem Homeverzeichnis, steht dort der Verzeichnisname, je nach Einstellung komplett (/usr/local/games/) oder nur der letzte Teil (games/).

Wird cd mit einem führenden Slash (/) geschrieben, so ist damit der Pfad unmittelbar unterhalb des root-Verzeichnisses gemeint:

[tux] /woauchimmer$ cd

[tux] ~$ mkdir etc   #Verzeichnis bin im Homeverzeichnis erzeugen

[tux] ~$ cd etc      #Gehe ins Verzeichnis etc

[tux] ~/etc$ ls -l
insgesamt 0

 

Wie du siehst bist du im Verzeichnis etc unterhalb deines Homeverzeichnisses (also /home/tux/etc) und nicht in /etc in dem du eben warst. Dort kommst du so hin:

[tux] ~/etc$ cd /etc #Gehe ins Verzeichnis /etc

[tux] /etc$ ls -l
...
-rw-r--r-- 1 root root  2202 Jun 20 2000  DIR_COLORS
-rw-r--r-- 1 root root     6 Jan 25 16:07 HOSTNAME
-rw-r--r-- 1 root root 77540 Aug 2  2000  Muttrc
-rw-r--r-- 1 root root    36 Jul 31 2000  SuSE-release
drwxr-xr-x 2 root root  4096 Jan 31 09:26 SuSEconfig
drwxr-xr-x 2 root root  4096 Jan 25 16:59 WindowMaker
...


Desweiteren gibt es noch einen Spezial-Fall: Das Verzeichnis ".." (also zwei Punkte) stellt immer das höher geordnete Verzeichnis da.
Auch hier ein Beispiel:

[tux] /etc$ ls -l ../ #zeigt den Inhalt des root-Verzeichnisses (liegt eine Ebene über /etc) an ...

dwxr-xr-x 2 root root 4096 Nov 20 22:54 bin/
dwxr-xr-x 62 root root 4096 Feb 1 21:46 etc/
drwxr-xr-x 3 root root 4096 Nov 20 22:35 home/
drwxr-xr- 17 root root 4096 Jun 22 2000 usr/
drwxr-xr-x 22 root root 4096 Nov 20 22:16 var/ ..


Spiele mal ein bißchen damit herum, denn das mußt du draufhaben!

So, ab jetzt werde ich mich etwas kürzer fassen, sonst tippe ich mir noch meine Finger stumpf ;-)). Sollte es dewegen Probleme geben, sofort bei mir melden.


Verzeichnisse erzeugen


Diesen Befehl hatten wir eben schon: mkdir und steht für MaKeDIRectory.
Erzeug mal bitte ein Paar Verzeichnisse in deinem Homeverzeichnis:

[tux] ~$ mkdir dir1
[tux] ~$ mkdir dir2
[tux] ~$ mkdir dir3



Dateien erzeugen

Hierfür werden wir mal einen Befehl "missbrauchen", touch. Normalerweise dient touch dazu, den Zeitpunkt des letzten Zugriffes zu verändern. Existiert aber die Datei nicht, wird eine 0 Byte große Datei angelegt und genau das wollen wir!
Dann legt mir mal ein Paar Dateien an:

[tux] ~$ touch datei1
[tux] ~$ touch datei2
[tux] ~$ touch datei3
[tux] ~$ touch datei4



Kopieren

Dazu dient der Befehl cp wie CoPy.
Eigentlich ganz einfach:

[tux] ~$ cp datei1 datei11 #Kopiere datei1 nach datei11



Willst du ein Verzeichnis, inklusive aller Dateien, kopieren, mußt du den Parameter -r mitangeben:

[tux] ~$ cp -r dir1 dir11 #Kopiere Verzeichnis dir1 nach dir11




Verschieben

Dazu dient der Befehl mv wie MoVe.
Verschieben ist quasi dasselbe wie kopieren (nur wird die Quelldatei gelöscht) , also ist die Syntax gleich:

[tux] ~$ mv datei11 datei12 #Verschiebe datei11 nach datei12



Im Gegensatz zu cp brauchst du zum Verschieben von Verzeichnissen keinen Parameter anzugeben!

[tux] ~$ mv dir11 dir12     #Verschiebe Verzeichnis dir11 nach dir12




Löschen

Dazu dient der Befehl rm wie ReMove.
Das dieser Befehl gefährlich ist, brauche ich nicht zu erwähnen oder? In der Konsole gibt es keinen Papierkorb...
Löschen einer Datei:

[tux] ~$ rm datei12 #datei12 wird gelöscht



Willst du ein Verzeichnis, inklusive aller Dateien, löschen, mußt du den Parameter -r mitangeben:

[tux] ~$ rm -r dir11  #dir11 wird gelöscht

Vorsicht !!!!
Dieser Befehl ist so mit der gefährlichste den es gibt !!
Verwendest du diesen als root falsch im root-Verzeichnis (/), dann war es das mit deinem System ...


Einen sehr netten Parameter gibt es noch: -i bzw. --interactive ; jetzt fragt rm vor jeder Datei, ob er denn auch wirklich löschen soll:


[tux] ~$ rm -i datei1 #datei1 wird mit Abfrage gelöscht, die Antwort ist yes "y" oder no "n"


Feste und symbolische Links

Mit Links kann man auf Dateien verweisen, es gibt die festen und die symbolischen Links.
Bei einem festen Link wird der I-Node gespeichert und bei symbolischen Links wird der Dateiname (evtl. mit Pfad) gespeichert. Feste Links sind schneller und verbrauchen weniger Platz, können aber nur auf demselben Dateisystem angewandt werden, dies ermöglichen die symbolichen Links, die aber langsamer, aber einfacher. Hier mal ein Beispiel:

[tux] ~$ ln datei1 datei2 #datei2 ist ein fester Link auf datei1

[tux] ~$ ls -li #-i zeigt den Ort "Ort auf der Platte" an
...
704516 -rw-r--r-- 2 tux user 0 Feb 8 13:12 datei1
704516 -rw-r--r-- 2 tux user 0 Feb 8 13:12 datei2
...


Beide Dateien sind eigentlich die selbe, änderst du eine Datei, ändert sich die andere auch, löscht du aber eine Datei, bleibt die andere bestehen !

Etwas anders sieht es bei den symbolischen Links aus:

[tux] ~$ ln -s datei1 datei3 #datei3 ist ein symbolischer Link auf datei1

[tux] ~$ ls -li
...
704516 -rw-r--r-- 2 tux user 0 Feb 8 13:12 datei1
704891 -rw-r--r-- 2 tux user 0 Feb 8 13:12 datei3 -> datei1
...

Der Unterschied ist recht deutlich zu sehen, es wird auf eine Datei gezeigt.
Im Normalfall solltest du symbolische Links verwenden, da sie einfacher zu handhaben sind.


Gut, mit diesen Befehlen kannst du schon mal alles wichtige mit Dateien machen.
Und das wird nun geübt!
Alles dann mal los: Dateien erzeugen, Verzeichnisse kopieren, Dateien in Verzeichnisse verschieben, Dateien im Verzeichnisse löschen, Verzeichnisse mit Abfrage löschen, Dateien erzeugen ... bis die Tastatur um Hilfe bettelt.




Verzeichnisse    Inhalt    Doku

Erstellt: 2001-02-01 Autor: Markus Ungermann (markus@tuxhausen.de)
Letztes Update: 2007-07-122     URL: http://www.tuxhausen.de/kurs_dateien.html