Benutzer-Werkzeuge

Webseiten-Werkzeuge


sammlung:cd_pwd_cp_mv_rm

Grundlegende Dateiverwaltung: cd, pwd, cp, mv, rm

Diese fünf Kommandos gehören zu den wichtigsten und meistgenutzten Befehlen in Linux. Sie ermöglichen Navigation im Dateisystem sowie das Kopieren, Verschieben und Löschen von Dateien und Verzeichnissen.

Voraussetzungen

Übersicht

Kommando Bedeutung Funktion
cd Change Directory Verzeichnis wechseln
pwd Print Working Directory Aktuellen Pfad anzeigen
cp Copy Dateien/Verzeichnisse kopieren
mv Move Dateien/Verzeichnisse verschieben oder umbenennen
rm Remove Dateien/Verzeichnisse löschen

cd - Change Directory

cd wechselt das aktuelle Arbeitsverzeichnis.

Grundlegende Syntax

cd [VERZEICHNIS]

Häufige Anwendungen

# Ins Home-Verzeichnis wechseln
cd
cd ~
cd $HOME
 
# In ein bestimmtes Verzeichnis
cd /var/log
cd Documents
cd /home/user/projects
 
# Ein Verzeichnis nach oben
cd ..
 
# Zwei Verzeichnisse nach oben
cd ../..
 
# Zum vorherigen Verzeichnis zurück
cd -
 
# In Unterverzeichnis
cd ./unterordner

Relative und absolute Pfade

# Absoluter Pfad (beginnt mit /)
cd /usr/local/bin
 
# Relativer Pfad (von aktuellem Verzeichnis)
cd documents/projekt1
 
# Mit Tilde (~) für Home
cd ~/Downloads
cd ~user/public
 
# Aktuelles Verzeichnis (.)
cd .
cd ./scripts

Spezielle Verzeichnisse

# Root-Verzeichnis
cd /
 
# Home-Verzeichnis
cd ~
 
# Vorheriges Verzeichnis
cd -
 
# Beispiel: Hin und Her wechseln
cd /var/log
cd /etc
cd -  # Zurück zu /var/log
cd -  # Zurück zu /etc

Praktische Beispiele

# Schnell zwischen Verzeichnissen wechseln
cd ~/projects/website
cd -  # Zurück zum vorherigen Ort
cd -  # Wieder zum Website-Projekt
 
# Mehrere Ebenen navigieren
cd ../../bin
 
# Mit Leerzeichen im Pfad (Maskieren)
cd "Meine Dokumente"
cd Meine\ Dokumente
 
# Wenn Verzeichnis nicht existiert
cd /nicht/vorhanden
# bash: cd: /nicht/vorhanden: Datei oder Verzeichnis nicht gefunden

Tipps

# Auto-Completion nutzen (Tab-Taste)
cd /var/lo[TAB]  # Vervollständigt zu /var/log
 
# CDPATH für häufig genutzte Verzeichnisse
export CDPATH=.:~:~/projects
cd website  # Sucht in ~/projects/website

pwd - Print Working Directory

pwd zeigt den vollständigen Pfad des aktuellen Verzeichnisses an.

Grundlegende Syntax

pwd [OPTIONEN]

Häufige Anwendungen

# Aktuelles Verzeichnis anzeigen
pwd
# Ausgabe: /home/user/documents
 
# Physischen Pfad anzeigen (symlinks auflösen)
pwd -P
 
# Logischen Pfad anzeigen (mit symlinks)
pwd -L

Praktische Beispiele

# Orientierung beim Navigieren
cd /var/log
pwd
# /var/log
 
cd ..
pwd
# /var
 
# In Skripten verwenden
CURRENT_DIR=$(pwd)
echo "Arbeite in: $CURRENT_DIR"
 
# Prompt mit Pfad
PS1='\u@\h:$(pwd)\$ '
 
# Kombination mit anderen Befehlen
echo "Ich bin hier: $(pwd)"
ls $(pwd)  # Expliziter Pfad

Unterschied -P und -L

# Beispiel mit Symlink
ln -s /var/log /home/user/logs
cd /home/user/logs
 
pwd -L
# /home/user/logs (logischer Pfad)
 
pwd -P
# /var/log (physischer Pfad)

cp - Copy

cp kopiert Dateien und Verzeichnisse.

Grundlegende Syntax

cp [OPTIONEN] QUELLE ZIEL
cp [OPTIONEN] QUELLE... VERZEICHNIS

Häufige Anwendungen

# Datei kopieren
cp datei.txt kopie.txt
 
# In anderes Verzeichnis kopieren
cp datei.txt /tmp/
 
# Mehrere Dateien kopieren
cp datei1.txt datei2.txt datei3.txt /backup/
 
# Mit neuem Namen kopieren
cp alt.txt /tmp/neu.txt
 
# Verzeichnis rekursiv kopieren
cp -r verzeichnis/ kopie_verzeichnis/
 
# Mit Wildcards
cp *.txt /backup/
cp dokument?.pdf archiv/

Wichtige Optionen

# Rekursiv (für Verzeichnisse)
cp -r ordner/ backup_ordner/
 
# Interaktiv (vor Überschreiben fragen)
cp -i datei.txt ziel.txt
 
# Verbose (zeigt was kopiert wird)
cp -v datei.txt backup/
 
# Attribute beibehalten
cp -p datei.txt backup/  # Zeitstempel, Rechte, etc.
 
# Nur wenn Quelle neuer ist
cp -u datei.txt backup/
 
# Verzeichnis komplett kopieren
cp -a ordner/ backup/  # Entspricht -dpr --preserve=all

Praktische Beispiele

# Backup erstellen
cp wichtig.txt wichtig.txt.backup
cp config.ini config.ini.$(date +%Y%m%d)
 
# Komplettes Verzeichnis sichern
cp -a /home/user/documents /backup/
 
# Nur PDF-Dateien kopieren
cp *.pdf /archiv/
 
# Mit Bestätigung
cp -i *.conf /etc/
 
# Struktur erhalten
cp --parents /var/log/app/error.log /backup/
# Erstellt /backup/var/log/app/error.log
 
# Symlinks kopieren (nicht auflösen)
cp -d symlink ziel/
 
# Sparse Files korrekt kopieren
cp --sparse=always große-datei.img backup/

Fehlerbehandlung

# Fehler ignorieren und fortfahren
cp -r ordner/ backup/ 2>/dev/null
 
# Mit Fortschrittsanzeige (für große Dateien)
rsync -ah --progress datei.img backup/
 
# Nur neue/geänderte Dateien
rsync -av --update quelle/ ziel/

mv - Move

mv verschiebt Dateien/Verzeichnisse oder benennt sie um.

Grundlegende Syntax

mv [OPTIONEN] QUELLE ZIEL
mv [OPTIONEN] QUELLE... VERZEICHNIS

Häufige Anwendungen

# Datei umbenennen
mv alt.txt neu.txt
 
# Datei verschieben
mv datei.txt /tmp/
 
# Verzeichnis umbenennen
mv alter_name neuer_name
 
# Verzeichnis verschieben
mv ordner/ /opt/
 
# Mehrere Dateien verschieben
mv datei1.txt datei2.txt datei3.txt /ziel/
 
# Mit Wildcards
mv *.log /var/log/archiv/

Wichtige Optionen

# Interaktiv (vor Überschreiben fragen)
mv -i datei.txt ziel.txt
 
# Verbose (zeigt was verschoben wird)
mv -v *.txt dokumente/
 
# Kein Überschreiben
mv -n datei.txt ziel.txt
 
# Backup bei Überschreiben
mv -b datei.txt ziel.txt  # Erstellt ziel.txt~
 
# Nur wenn Quelle neuer
mv -u datei.txt backup/

Praktische Beispiele

# Datei umbenennen
mv report.txt report_final.txt
mv 'datei mit leerzeichen.txt' datei-ohne-leerzeichen.txt
 
# Ordner umbenennen
mv projekt_alt projekt_neu
 
# In anderes Verzeichnis verschieben
mv *.mp3 ~/Musik/
mv dokument.pdf ~/Dokumente/2024/
 
# Dateien sortieren
mv *.jpg bilder/
mv *.mp4 videos/
mv *.pdf dokumente/
 
# Batch-Umbenennung mit Schleife
for file in *.JPG; do
    mv "$file" "${file%.JPG}.jpg"
done
 
# Groß-/Kleinschreibung ändern
mv DATEI.TXT temp_file
mv temp_file datei.txt
 
# Mit Zeitstempel
mv log.txt log.txt.$(date +%Y%m%d_%H%M%S)

Wichtige Hinweise

# ACHTUNG: mv überschreibt ohne Warnung!
mv wichtig.txt dokumente/wichtig.txt  # Überschreibt ohne Nachfrage
 
# Besser: Mit -i
mv -i wichtig.txt dokumente/wichtig.txt
 
# mv über Dateisystem-Grenzen = kopieren + löschen
mv /home/user/datei.txt /mnt/usb/  # Kann länger dauern

rm - Remove

rm löscht Dateien und Verzeichnisse unwiederbringlich.

Grundlegende Syntax

rm [OPTIONEN] DATEI...

WARNUNG: rm löscht Dateien permanent! Es gibt keinen Papierkorb in der Kommandozeile. Gelöschte Dateien sind meist unwiederbringlich verloren.

Häufige Anwendungen

# Datei löschen
rm datei.txt
 
# Mehrere Dateien löschen
rm datei1.txt datei2.txt datei3.txt
 
# Mit Wildcards
rm *.tmp
rm backup_*
 
# Leeres Verzeichnis löschen
rmdir leerer_ordner/
 
# Verzeichnis mit Inhalt löschen
rm -r ordner/
 
# Interaktiv (nachfragen)
rm -i datei.txt

Wichtige Optionen

# Rekursiv (Verzeichnisse)
rm -r verzeichnis/
 
# Force (keine Rückfragen)
rm -f datei.txt
 
# Interaktiv (vor jedem Löschen fragen)
rm -i *.txt
 
# Verbose (zeigt was gelöscht wird)
rm -v datei.txt
 
# Kombination: rekursiv + force
rm -rf ordner/  # VORSICHT!
 
# Verzeichnis nur wenn leer
rmdir ordner/

Praktische Beispiele

# Temporäre Dateien löschen
rm *.tmp
rm *~
rm *.bak
 
# Alte Log-Dateien
rm /var/log/app.log.*
 
# Cache leeren
rm -rf ~/.cache/*
 
# Build-Artefakte
rm -rf build/ dist/ *.o
 
# Mit Bestätigung bei wichtigen Dateien
rm -i wichtig.txt
 
# Nur Dateien, keine Verzeichnisse
find . -type f -name "*.log" -delete
 
# Dateien älter als 7 Tage
find /tmp -type f -mtime +7 -delete

Sicherheits-Tipps

# NIEMALS als root ausführen:
# rm -rf /  # Löscht ALLES!
# rm -rf /*  # Löscht ALLES!
 
# Alias für Sicherheit (in ~/.bashrc)
alias rm='rm -i'
alias rm-force='/bin/rm'  # Für echtes rm ohne -i
 
# Vor dem Löschen prüfen
ls *.tmp  # Was würde gelöscht?
rm *.tmp  # Dann löschen
 
# Papierkorb-Funktion simulieren
trash() {
    mkdir -p ~/.trash
    mv "$@" ~/.trash/
}
 
# Alternativen zu rm
trash-put datei.txt  # Nutzt trash-cli Paket
gio trash datei.txt  # GNOME trash
 
# Wichtige Verzeichnisse schützen
chmod -w wichtiger_ordner/

Typische Fehler vermeiden

# FALSCH: Leerzeichen vergessen
rm -rf /wichtiges verzeichnis
# Löscht: /wichtiges und ./verzeichnis
 
# RICHTIG: Anführungszeichen
rm -rf "/wichtiges verzeichnis"
 
# FALSCH: Glob expandiert zu früh
rm *.txt > /dev/null
# Kann Probleme verursachen
 
# RICHTIG:
rm *.txt 2>/dev/null
 
# Vor dem Löschen testen
echo rm -rf ordner/  # Zeigt nur an
# rm -rf ordner/      # Erst danach ausführen

Kombination der Befehle

Typische Workflows

# Navigieren, prüfen, kopieren
cd ~/documents
pwd
ls -la
cp wichtig.txt backup/
 
# Dateien organisieren
cd ~/Downloads
ls *.pdf
mkdir pdfs
mv *.pdf pdfs/
cd pdfs
pwd
 
# Backup-Workflow
cd /var/www
cp -a html/ html.backup.$(date +%Y%m%d)
ls -la
 
# Aufräumen
cd /tmp
ls -la
rm -rf temp_*
ls -la
 
# Projekt-Setup
mkdir -p ~/projects/neues-projekt
cd ~/projects/neues-projekt
pwd
cp ~/templates/template.html .
ls -la

Skript-Beispiele

#!/bin/bash
# Dateien organisieren
 
# Aktuelles Verzeichnis merken
ORIG_DIR=$(pwd)
 
# Zu Zielordner wechseln
cd ~/Downloads || exit
 
# Dateien sortieren
mkdir -p Bilder Videos Dokumente
 
mv *.jpg *.png Bilder/ 2>/dev/null
mv *.mp4 *.avi Videos/ 2>/dev/null
mv *.pdf *.doc Dokumente/ 2>/dev/null
 
# Temporäre Dateien löschen
rm -f *.tmp *~
 
# Zurück zum Original-Verzeichnis
cd "$ORIG_DIR" || exit
 
echo "Dateien wurden organisiert!"

Siehe auch

sammlung/cd_pwd_cp_mv_rm.txt · Zuletzt geändert: von 127.0.0.1