Große Dateien mit beibehaltenem Verzeichnisbaum kopieren

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Projekt lernst du, wie du Dateien größer als 10K aus dem Verzeichnis /etc in das Verzeichnis /tmp/etc kopierst, wobei die Verzeichnisstruktur beibehalten wird. Dies ist eine nützliche Fähigkeit für das Verwalten und Organisieren von Dateien auf einem Linux-System.

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du ein Skript zum Kopieren von Dateien basierend auf der Größe erstellst
  • Wie du die find-Befehl verwendest, um Dateien zu finden, die bestimmte Kriterien erfüllen
  • Wie du die Verzeichnisstruktur beibehaltest, wenn du Dateien kopierst
  • Wie du ein Skript mit erhöhten Rechten mit sudo ausführst

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Den Prozess des Kopierens von Dateien basierend auf der Größe zu automatisieren
  • Die Verzeichnisstruktur bei der Dateikopie beizubehalten
  • Die find-Befehl effektiv zu verwenden, um Dateien zu finden, die bestimmte Kriterien erfüllen
  • Skripte mit erhöhten Rechten auszuführen, um auf geschützte Dateien und Verzeichnisse zuzugreifen

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cp("File Copying") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/FileandDirectoryManagementGroup -.-> linux/mkdir("Directory Creating") linux/FileandDirectoryManagementGroup -.-> linux/find("File Searching") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") subgraph Lab Skills linux/ls -.-> lab-301465{{"Große Dateien mit beibehaltenem Verzeichnisbaum kopieren"}} linux/cp -.-> lab-301465{{"Große Dateien mit beibehaltenem Verzeichnisbaum kopieren"}} linux/cd -.-> lab-301465{{"Große Dateien mit beibehaltenem Verzeichnisbaum kopieren"}} linux/mkdir -.-> lab-301465{{"Große Dateien mit beibehaltenem Verzeichnisbaum kopieren"}} linux/find -.-> lab-301465{{"Große Dateien mit beibehaltenem Verzeichnisbaum kopieren"}} linux/sudo -.-> lab-301465{{"Große Dateien mit beibehaltenem Verzeichnisbaum kopieren"}} end

Erstellen des Kopierskripts

In diesem Schritt wirst du das Skript erstellen, das die Dateien größer als 10K aus dem Verzeichnis /etc in das Verzeichnis /tmp/etc kopiert.

  1. Öffne die Datei copy.sh im Verzeichnis /home/labex/project mit einem Texteditor.
  2. Füge den folgenden Code zur Datei hinzu:
#!/bin/zsh

## Dieses Skript kopiert Dateien größer als 10K von einem Quellverzeichnis in ein Zielverzeichnis.

## Definiere das Quellverzeichnis und das Zielverzeichnis
source_dir="/etc"
target_dir="/tmp"

## Erstelle das Zielverzeichnis, wenn es nicht existiert
mkdir -p "$target_dir"

## Verwende den find-Befehl, um Dateien größer als 10K zu finden und kopiere sie in das Zielverzeichnis
find "$source_dir" -type f -size +10k -exec cp --parents --dereference "{}" "$target_dir" \;

echo "Dateikopie abgeschlossen."
  1. Speichere die Datei.

In diesem Schritt hast du das Skript copy.sh erstellt, das die Dateien größer als 10K aus dem Verzeichnis /etc in das Verzeichnis /tmp/etc kopiert und dabei die Verzeichnisstruktur beibehält.

Ausführen des Kopierskripts

In diesem Schritt wirst du das Skript copy.sh ausführen, um die Dateien zu kopieren.

  1. Öffne ein Terminal und navigiere zum Verzeichnis /home/labex/project.
  2. Führe das Skript mit dem folgenden Befehl aus:
sudo sh copy.sh

Dies führt das Skript mit erhöhten Rechten aus und ermöglicht es, Dateien zu kopieren, auf die der Benutzer labex möglicherweise keinen Zugang hat.

  1. Warte, bis das Skript abgeschlossen ist. Du solltest die Nachricht "Dateikopie abgeschlossen." sehen, wenn das Skript fertig ist.

In diesem Schritt hast du das Skript copy.sh ausgeführt, um die Dateien größer als 10K aus dem Verzeichnis /etc in das Verzeichnis /tmp/etc zu kopieren.

Überprüfen der kopierten Dateien

In diesem Schritt wirst du überprüfen, ob die Dateien korrekt kopiert wurden.

  1. Öffne einen Dateimanager und navigiere zum Verzeichnis /tmp/etc.
  2. Betrachte die Verzeichnisstruktur und die kopierten Dateien. Du solltest sehen, dass die Verzeichnisstruktur beibehalten wurde und nur die Dateien größer als 10K kopiert wurden.
  3. Du kannst auch den Befehl ls -l im Terminal verwenden, um die Dateien und ihre Größen im Verzeichnis /tmp/etc aufzulisten.

In diesem Schritt hast du überprüft, dass die Dateien korrekt von dem Verzeichnis /etc in das Verzeichnis /tmp/etc kopiert wurden.

Glückwunsch! Du hast das Projekt erfolgreich abgeschlossen, um Dateien größer als 10K von dem Verzeichnis /etc in das Verzeichnis /tmp/etc zu kopieren und dabei die Verzeichnisstruktur zu beibehalten.

✨ Lösung prüfen und üben

Zusammenfassung

Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Übungen absolvieren, um deine Fähigkeiten zu verbessern.