Verwaltung von Dateien und Verzeichnissen
- cp
kopieren von Dateien und Verzeichnissen. Angabe von Quelle und Ziel immer notwendig. Letztes Argument ist immer das Zielverzeichnis. - Quelle wie auch das Ziel können wahlweise relativ oder absolut angegeben werden.
- Ziel kann Datei oder Verzeichnis sein.
- Sollen mehrere Quelldateien kopiert werden, geht die Shell davon aus, dass es sich bei dem Ziel um ein Verzeichnis handelt.
- -i --interactive :Per Voreinstellung wird die Zieldatei überschrieben, sofern sie schon vorhanden ist. Um dies zu verhindern kann die Option -i verwendet werden
- -d --no-dereference:kopiert Symlinks als Symlinks und nicht deren Inhalt. Soll ein Backup gemacht werden, muss jedoch das Zielverzeichnis unbedingt mit kopiert werden
- -a --archive :diese Option macht das Gleiche wie -Rpd
- -f --force :erzwingt den Schreibvorgang im Zielverzeichnis.
- -l --link :kopiert Dateien nicht physisch, sondern legt Hardlinks an (-s legt Symlinks an). Geht nur auf der selben Partition
- -s --symbolic-link :legt im Zielordner nur Symlinks an, kopiert die Dateien nicht physisch
- -p --preserver :kopiert Dateien bzw. Verzeichnisse unter Beibehaltung des Eigentümers, der Eigentümergruppe, der Berechtigungen und der Timestamps. Wichtig für Backups!!!
- -R -r --recursive :kopiert ein Verzeichnis inklusive aller Unterverzeichnisse und Dateien
- cd
- cd ../.. :wechselt zwei Verzeichnisebenen höher
- cd ../dateien :wechselt zuerst eine Verzeichnisebene höher und dann dazu relativ ins Verzeichnis "dateien"
- find -> siehe späteren Post zum Auffinden von Dateien
- file
Aufruf von file <Datei> gibt den Dateityp der Datei aus - mkdir
- -p --parents: erstellt noch nicht existierende übergeordnete Verzeichnisse. Damit können komplexe Verzeichnisstrukturen mit einem Befehl angelegt werden
- -m --mode : stellt die Berechtigung für das neue Verzeichnis während der Erstellung ein.
Z.B. ilonka@superhero:~$ mkdir -m 700 Test erzeugt einen Ordner Test für den aktuell angemeldeten Benutzer, dass nur dieser exklusiv verwenden kann, und auf das er Schreibrechte hat - mv
Verschieben von Dateien und Verzeichnissen - Befinden sich Quelle und Ziel auf der gleichen Partition, werden lediglich die Einträge in den jeweiligen Verzeichnissen geändert. Nur Partitionsübergreifend werden die Dateien und Verzeichnisse tatsächlich verschoben, weshalb der Vorgang mehr Zeit in Anspruch nimmt
- -u --update :Erstellt die Datei im Zielverzeichnis nur, wenn die eventuell vorhandene Datei älter als die Quelldatei ist oder die Datei noch nicht existiert
- -i --interactive :Fragt nach, ob existierende Dateien tatsächlich überschrieben werden sollen
- -f --force : erzwingt den Schreibvorgang im Zielverzeichnis
- ls
Auflistung des Inhalts eines Verzeichnisses - -l :Listingformat -> Angabe der Zugriffsberechtigungen, Timestamps, Dateigröße und Owner
- -i :zeigt die verwendete Inodes der Dateien und Verzeichnisse an
- -a :Auflistung aller Dateien, auch der versteckten (mit einem Punkt versehenen). Verwendet man -A so werden die Punktoperatoren nicht mit ausgegeben
- -s :in Kombination mit -l Angabe der Dateigröße in Blöcken
- -h :Dateigröße in menschenleslichem Format ausgeben, in Kombination mit -l
- rm
- Löschen von Dateien und Verzeichnisse (mit der entsprechenden Option)
- Es sind die Schreibrechte in dem Verzeichnis notwendig, nicht jedoch auf die Datei selbst
- -R -r --recursive :löscht, auf ein Verzeichnis angewendet, auch alle Unterverzeichnisse und alle Dateien
- -i --interactive :fragt vor dem Löschen jeder Datei (und Verzeichnisse) nach, ob sie wirklich gelöscht werden soll
- -f --force :erzwingt das Löschen. Fehlermeldungen, die durch nicht vorhandene Dateien entstehen, werden unterdrückt
- rmdir
- löschen leerer Verzeichnisse
- Verzeichnisse mit Dateien können nicht gelöscht werden
- -p :Übergeordente Verzeichnisse werden automatisch mit gelöscht, wenn diese durch die Löschung des eigentlichen Verzeichnisses leer werden
- touch
- Timestamps einer Datei ändern
- kann ebenfalls dazu verwendet werden, um neue Dateien mit der Größe 0Bytes anzulegen
- Aufruf ohne Option gibt der Datei das aktuelle Datum
- -t :Timestamp auf den Wert [[CC]YY]MMDDhhmm[.ss]
- -a :ändert nur die letzte Zugriffszeit
- -m :ändert nur die letzte Änderungszeit
- tar
- Archivierungsprogramm
- Aufruf der Optionen mit Bindestrich und ohne möglich
- -x :(extract) extrahiert ein Archiv
- -z :(gzip/gunzip) Komprimierung mittels gzip, bzw. Entkomprimierung mittels gunzip
- -v :Verbose Mode
- -c :(create) erstellt ein neues Archiv
- -t :(table) listet den Inhalt eines Archivs auf
- -j :Komprimierung mittels bzip2 bzw. Entkomprimierung mittels bunzip2
- -f :(file) Es wird zur Eingabe- bzw. Ausgabe eine Datei verwendet
- Anordnung der Optionen beliebig, außer -f, welches immer als letzte Option genannt werden muss
- cpio
- Dateien aus einem Archiv heraus oder rein kopieren
- wird heutzutage kaum noch verwendet (siehe tar)
- verschiedene Modi aus Sicht des Dateisystems und nicht aus Sicht von cpio
- -i --extract :Copy-in-Modus; Dateien werden aus dem Archiv in das Dateisystem kopiert
- -o --create :Copy-out-Modus; Dateien werden aus dem Dateisystem in ein Archiv kopiert, welches im ersten Schritt erzeugt wird
- -p --pass-through:In diesem Modus werden Dateien kopiert und in das angegebene Verzeichnis abgelegt
- dd
- kopieren oder konvertieren von Dateien. Dabei werden diese Bitgenau kopiert
- Möglichkeit Betriebssysteme von einer Platte auf eine andere zu klonen (Plattengröße beachten, da der MBR ebenfalls mitkopiert wird)
- Aufruf ohne Option erzeugt nur die Ausgabe des eingegebenen Text in der stdout (abschicken mit Strg + d)
- Duplizieren von Festplatten: achangel:/ #dd if=/dev/sda of=/dev/sdb
- dd benötigt erhebliche Zeit
- gzip
- Komprimierung von Dateien
- sollen mehrere Dateien zusammengefasst werden, macht der Aufruf per tar mit den entsprechenden Optionen mehr Sinn
- Wird gzip ohne Optionen aufgerufen, wird die Datei komprimiert abgelegt und mit der Endung .gz versehen. Die Originaldatei wird dabei gelöscht
- -k :Die Originaldatei bleibt nach der Komprimierung erhalten
- mehrere Dateien können auf einmal komprimiert werden, indem man sie mit Leerzeichen getrennt aufruft. Es wird jedoch kein Archiv gebildet. Verwendung von Wildcards ebenfalls möglich
- gunzip
- Entkomprimiert Dateien, die mit gzip komprimiert wurden
- löscht die komprimierte Datei nach der Dekomprimierung, außer bei Verwendung der Option -k
- Alternativ kann auch gzip -d (decompress) aufgerufen werden
- zcat verhält sich ohne Option wie gunzip -c
- bzip
Alternative zu gzip mit meist einer höheren Kompressionsrate. Dekomprimierung erfolgt über bunzip2, bzip2 -d oder bzcat (alle drei Varianten verwenden das gleiche Programm per Symlink) - xz
- Erzeugung komprimierter Archive mit der Dateierweiterung .xz
- Verwendung wie unter gzip und bzip2
- Dekompression: unzx und xzcat
- -z --compress
- -d --decompress --uncompress
- -t --test
- -l --list
- Wildcards
- Wildcards werden verwendet, um Operationen auf mehrere Dateien gleichzeitig ausführen zu können
- Bei der Suche von Dateien ist es so ebenfalls möglich, nach Dateien zu suchen, dessen genauen Namen nicht bekannt sind
- Wildcards werden durch die Shell interpretiert und können daher von jedem Programm verwendet werden
- Beispiele siehe unten
- * ersetzt null oder mehr Zeichen. Das heißt, dass auch die Datei mit dem gesuchten Begriff ohne anhängenden Zeichen angezeigt werden.
- ? ersetzt genau ein Zeichen hinter dem Suchbegriff. Dabei wird die Datei mit dem Suchbegriff selbst nicht angezeigt
- [a-z] ersetzt ein einzelnes Zeichen aus dem angegebenen Bereich, gibt aber wieder nicht die Datei aus, die nur den Suchbegriff enthält
- [abcde] ersetzt ein einzelnes der angegebene Zeichen
- [!a-z] ersetzt ein einzelnes Zeichen, welches nicht angegeben ist
- absolute Pfadangabe: beginnt immer mit einem Slash. Es wird immer der gesamte Pfad angegeben. Z.B. /var/log
- relative Pfadangabe: Bewegung im aktuellen Verzeichnis. Aufruf erfolgt hier ohne Slash. z.B. cd log innerhalb des Verzeichnis /var