Terminal Guide 2: Kopieren und Verschieben

22.03.2009 23:07 von sts

terminalIn unserem letzten Artikel in der Serie Terminal Guide ging es um das Starten des Terminals und wozu wir es überhaupt benutzen können. Heute wollen wir uns damit beschäftigen, wie wir es benutzen. Wir schauen uns die wichtigsten Befehle zur Navigation im Dateisystem an. Weiter geht’s dann mit den Befehlen zum Kopieren, Verschieben, Löschen und Anzeigen von Dateien.

Fakten zu Dateien und Verzeichnissen

  • Mac OS X unterscheidet zwischen Groß- und Kleinschreibung
  • Mac OS X unterstützt den UTF-8-Zeichensatz
  • Dateien, die mit einem Punkt beginnen, sind versteckte Dateien
  • OS X benutzt als Dateisystem hauptsächlich HFS+

Zum weiteren Verständnis solltet ihr wissen, wie das Dateisystem von Unix-Systemen generell aufgebaut ist. Google oder Wikipedia sind sehr hilfreich.

Kommandos zur Bearbeitung von Dateien

  • cd – wechselt das aktuelle Verzeichnis
  • cp – kopiert Dateien
  • less – zeigt Dateiinhalte Seitenweise an
  • mkdir – erstellt ein neues Verzeichnis
  • mv – verschiebt bzw. ändert Namen von Dateien
  • rm – löscht Dateien
  • rmdir – löscht Verzeichnisse

Dateien anzeigen

localhost:~ user$ ls
Desktop   Downloads Movies    Pictures  Sites
Documents Library   Music     Public    workspace

localhost:~ user$ ls -l
drwx------+ 13 user  staff   442 23 Mär 15:39 Desktop
drwx------+ 22 user  staff   748 23 Feb 17:42 Documents
drwx------+ 25 user  staff   850 23 Mär 15:39 Downloads
drwx------+ 52 user  staff  1768 20 Mär 12:39 Library
drwx------+ 16 user  staff   544 22 Mär 17:19 Movies
drwx------+  7 user  staff   238 10 Feb 15:33 Music
drwx------+ 37 user  staff  1258 22 Mär 18:53 Pictures
drwxr-xr-x+  6 user  staff   204 24 Apr  2008 Public
drwxr-xr-x+  5 user  staff   170 14 Apr  2008 Sites
drwxr-xr-x   3 user  staff   102 16 Apr  2008 workspace

localhost:~ user$ ls -la
drwxr-xr-x+ 37 user  staff   1258 23 Mär 16:01 .
drwxr-xr-x   5 root     admin    170 14 Apr  2008 ..
-rw-------   1 user  staff      3 14 Apr  2008 .CFUserTextEncoding
-rw-r--r--@  1 user  staff  15364 23 Mär 15:39 .DS_Store
drwx------   3 user  staff    102 23 Mär 09:44 .Trash
-rw-------   1 user  staff      0 19 Feb 18:05 .Xauthority
drwxr-xr-x   2 user  staff     68 10 Mai  2008 .Xcode
drwxr-xr-x   3 user  staff    102 15 Jun  2008 .alice
...

Mit ls lassen wir uns den Inhalt des aktuellen Verzeichnisses ausgeben. In der Ausgabe werden Dateien und Ordner in unterschiedlichen Farben dargestellt. Mit einem ls wie in Zeile 1 erhalten wir eine sehr spartanische Ausgabe. Wir sehen lediglich die Ordner und Dateien. Mit ls -l, wie in Zeile 5, erhalten wir zu den einzelen Zeilen noch Angaben wie die Dateirechte, den Benutzer, dem die Datei gehört, und das Erstellungsdatum. Fügen wir in Zeile 5 noch ein a hinzu wie in Zeile 17, werden auch die versteckten Dateien ausgegeben. Diese sind an einem Punkt vor dem Dateinamen zu erkennen (Zeile 20 ff.).

Beispiele zu cd

localhost:~ user$ cd Documents/
localhost:Documents user$ cd ../Pictures
localhost:Documents user$ cd
localhost:~ user$ cd /Library/Developer
localhost:Library/Developer user$ cd
localhost:~ user$ pwd
/Users/user

Die Syntax von cd ist sehr einfach. In Zeile 1 wechseln wir aus unserem Home-Verzeichnis (siehe Terminal Guide 1) in das Verzeichnis Documents. In der zweiten Zeilen sehen wir einen Verzeichniswechsel mit einem relativen Pfad. ../ bedeutet hier das übergeordnete Verzeichnis. Verwenden wir den Befehl ohne Parameter wie in Zeile 3, wechseln wir automatisch in unser Home-Verzeichnis. In Zeile 6 wird mit dem Befehl pwd das aktuelle Verzeichnis ausgegeben, das Ergebnis seht ihr in Zeile 7. Diese relativen und absoluten Pfadangaben können auch bei allen anderen Befehlen benutzt werden.

Beispiele zu cp

localhost:~ user$ cp test.txt Desktop/
localhost:~ user$ cp test.txt Desktop/test1.txt
localhost:~ user$ cp -r testorder Desktop/

cp benutzt als Parameter immer die zu kopierende Datei und das Ziel. in Zeile 1 wird eine Datei auf den Desktop (den Schreibtisch) kopiert. Sie landet dort mit dem gleichen Namen wie die Ursprungsdatei. In Zeile 2 hingegen kopieren wir diese Datei auf den Desktop, diesmal mit dem Namen test1.txt. Was macht nun aber dieses -r in Zeile 3? Wollen wir ganze Verzeichnisse kopieren, brauchen wir diesen Schalter: -r steht hier für „rekursiv“, wir steigen also in der Verzeichnistruktur rekursiv ab und kopieren alles ab diesem Punkt. Will man also komplette Ordner kopieren, immer den Schalter -r verwenden.

Vorsicht bei rm!

localhost:~ user$ rm test.txt
localhost:~ user$ rm testordner (Fehler!)
localhost:~ user$ rm -r testordner

Bei dem Befehl rm ist höchste Vorsicht geboten. rm löscht Dateien direkt ohne Nachfrage. Sie landen auch nicht im Papierkorb, nur über die Time Machine könnt ihr gelöschte Dateien wiederherstellen. In der ersten Zeile wird eine Datei gelöscht. In der zweiten Zeile versuchen wir es dann mit einem Ordner und erhalten einen Fehler. Ah ja, das war doch was mit rekursivem Abstieg. Nun können wir auch eine komplette Ordnerstruktur löschen (Zeile 3).

Dateien und Ordner erstellen

localhost:~ user$ touch test.txt
localhost:~ user$ mkdir testordner

Die Befehle touch und mkdir dienen zum Erstellen von Dateien bzw. Ordnern. Hier ist eigentlich nichts weiter zu beachten. Wie immer könnt ihr relative und absolute Pfade verwenden.

Beispiele zu mv

localhost:~ user$ mv test.txt testumbenannt.txt
localhost:~ user$ mv test.txt Desktop/
localhost:~ user$ mv testordner/ Desktop/

mv ist der Befehl zum Verschieben und Umbenennen. In Zeile 1 wird die Datei test.txt in testumbenannt.txt umbenannt. Geben wir wie in Zeile 2 einen Ordner als Ziel an, wird die Datei in diesen Ordner verschoben. In Zeile 3 wird ein Ordner an eine andere Stelle verschoben. Wie, kein -r? Richtig erkannt. Hier sei nur kurz das Stichwort inodes erwähnt. Dazu mehr in späteren Artikeln.

2 Kommentare

Bernd

#1

Mac OS X unterscheidet Groß/Kleinschreibung ist nur bedingt eine richtige Aussage. Mac OS X ist UNIX und UNIX setzt diese voraus. Es ist also nicht eine OS X Sache an sich.

Touch ist da um den Zeitstempel auf „JETZT“ zu setzen. Zwar KANN touch auch Dateien erzeugen, jedoch würde ich touch nicht wirklich dafür verwenden. Hierfür würde ich immer ed oder ähnlichen empfehlen.

Ansonsten: Nette Reihe. Danke sehr!

Bernd

sts

#2

Hi Bernd,

alles richtig was du schreibst. Da ich jedoch die Reihe für Einsteiger schreibe, muss ich immer abwägen was ich ausführe und was nicht. Denke das das konnte ich verschweigen 🙂
Und natürlich verwenden wir bald vi zum erstellen von Textdateien!

Danke für die Anmerkungen

Kommentar hinterlassen