Harting Development

Effizientes Kopieren und Verschieben von Dateien unter Linux

Lukas Fuchs vor 2 Jahren Systemadministration 3 Min. Lesezeit

Grundlegende Befehle zum Kopieren und Verschieben von Dateien

Unter Linux stehen dir mehrere Befehle zum Kopieren und Verschieben von Dateien zur Verfügung. Die Befehle cp und mv sind die grundlegendsten.

Kopieren von Dateien mit cp

Mit dem Befehl cp kannst du eine oder mehrere Dateien an einen neuen Speicherort kopieren. Die Syntax lautet:

cp [Optionen] Quelle Ziel

Dabei ist:

  • Quelle: Der Pfad zur Quelldatei oder zum Quellverzeichnis
  • Ziel: Der Pfad zum Zielverzeichnis oder zur Zieldatei

Wenn du beispielsweise die Datei datei.txt in das Verzeichnis mein_verzeichnis kopieren möchtest, gibst du folgenden Befehl ein:

cp datei.txt mein_verzeichnis

Verschieben von Dateien mit mv

Der Befehl mv verschiebt eine oder mehrere Dateien an einen neuen Speicherort. Die Syntax lautet:

mv [Optionen] Quelle Ziel

Dabei ist:

  • Quelle: Der Pfad zur Quelldatei oder zum Quellverzeichnis
  • Ziel: Der Pfad zum Zielverzeichnis oder zur Zieldatei

Wenn du beispielsweise die Datei datei.txt in das Verzeichnis mein_verzeichnis verschieben möchtest, gibst du folgenden Befehl ein:

mv datei.txt mein_verzeichnis

Im Gegensatz zum Befehl cp entfernt der Befehl mv die Quelldatei nach dem Verschieben.

Optionen zum Anpassen des Kopiervorgangs

Beim Kopieren von Dateien in Linux gibt es mehrere Optionen, die du verwenden kannst, um den Kopiervorgang anzupassen. Diese Optionen ermöglichen es dir, den Vorgang zu optimieren und an deine spezifischen Anforderungen anzupassen.

Fortschrittsanzeige

Mit den Optionen -v (verbose) und --progress kannst du eine detaillierte Fortschrittsanzeige während des Kopierens anzeigen lassen. Dies kann hilfreich sein, um den Fortschritt zu überwachen, insbesondere bei großen Dateien oder Verzeichnissen.

Überschreiben von Dateien

Standardmäßig werden beim Kopieren vorhandene Zieldateien überschrieben. Du kannst jedoch die Option -i (interactive) verwenden, um aufgefordert zu werden, für jede Zieldatei anzugeben, ob sie überschrieben werden soll. Dies kann nützlich sein, um Datenverluste zu vermeiden.

Erhaltung von Berechtigungen

Mit der Option -p (preserve) kannst du sicherstellen, dass beim Kopieren die Dateiberechtigungen, der Zeitstempel und andere Metadaten beibehalten werden. Dies ist wichtig, wenn du sicherstellen möchtest, dass die kopierten Dateien dieselben Eigenschaften wie die Originaldateien haben.

Rekursives Kopieren

Die Option -r (recursive) kannst du zum rekursiven Kopieren von Verzeichnissen und deren Inhalten verwenden. Dies ist nützlich, wenn du eine gesamte Verzeichnisstruktur kopieren möchtest, einschließlich aller Unterverzeichnisse und Dateien.

Symbolische Links

Mit der Option -l (link) kannst du symbolische Links anstelle von Kopien erstellen. Dies kann nützlich sein, wenn du auf eine Datei verweisen und dabei Speicherplatz sparen möchtest.

Ausschluss von Dateien

Mit der Option --exclude-from=<Datei> kannst du eine Textdatei mit Mustern angeben, um Dateien vom Kopiervorgang auszuschließen. Dies kann hilfreich sein, um bestimmte Dateitypen oder Dateien mit bestimmten Namen auszuschließen.

Umfassende Kopierbefehle für fortgeschrittene Benutzer

Wenn du fortgeschrittene Anforderungen an das Kopieren und Verschieben von Dateien unter Linux hast, stehen dir eine Reihe umfassender Befehle zur Verfügung. Diese Befehle bieten dir zusätzliche Kontrolle und Flexibilität bei der Verwaltung deiner Dateien.

Rekursives Kopieren

Verwende die Option -r (rekursiv), um ganze Verzeichnishierarchien zu kopieren, einschließlich versteckter Dateien und Unterverzeichnisse. Beispiel:

cp -r Quellverzeichnis/ Zielverzeichnis/

Bedingtes Kopieren

Kopiere Dateien nur unter bestimmten Bedingungen mit folgenden Optionen:

  • -a: Kopiert alle Attribute, einschließlich Berechtigungen und Zeitstempel.
  • -i: Fordert dich vor dem Überschreiben vorhandener Dateien auf.
  • -u: Kopiert nur Dateien, die neuer sind als die vorhandenen Zieldateien.

Beispiel:

cp -aiu Quellverzeichnis/neuere_datei.txt Zielverzeichnis/

Symbolische Verknüpfungen erstellen

Erstelle symbolische Verknüpfungen zu Dateien oder Verzeichnissen mit der Option -s. Dies erstellt einen Link, der auf die Originaldatei oder das Verzeichnis verweist. Beispiel:

cp -s Quellverzeichnis/Datei Zielverzeichnis/Link-zu-Datei

Zeitstempel beibehalten

Behalte die Zeitstempel von Dateien bei, indem du die Option -p verwendest. Dies ist hilfreich, wenn du die ursprünglichen Erstellungs- und Änderungsdaten beibehalten möchtest. Beispiel:

cp -p Quellverzeichnis/Datei Zielverzeichnis/

Überwachung des Fortschritts

Verfolge den Fortschritt des Kopiervorgangs in Echtzeit mit der Option -v. Dies gibt dir eine detaillierte Ausgabe zu den kopierten Dateien und Verzeichnissen. Beispiel:

cp -v Quellverzeichnis/ Zielverzeichnis/

Fehlerbehandlung

Wenn Fehler auftreten, kannst du die Option -f (force) verwenden, um diese zu ignorieren und den Kopiervorgang fortzusetzen. Alternativ kannst du die Option --no-clobber verwenden, um das Überschreiben vorhandener Dateien zu verhindern.

Beispiel:

cp -f Quellverzeichnis/ fehlerhafte_Datei Zielverzeichnis/

Optimierung der Leistung

Für große oder zahlreiche Dateien kannst du die Option -j (parallel) verwenden, um den Kopiervorgang zu parallelisieren und die Leistung zu verbessern. Passe die Anzahl der parallelen Threads mit der Option --jobs an. Beispiel:

cp -j 4 Quellverzeichnis/ GroßesVerzeichnis Zielverzeichnis/

Fehlerbehebung bei Kopierfehlern

Beim Kopieren von Dateien unter Linux kannst du möglicherweise auf Fehler stoßen. Befolge diese Schritte zur Fehlerbehebung:

Berechtigungsfehler

  • Überprüfe, ob du über die erforderlichen Lese- und Schreibrechte für die Quell- und Zielordner verfügst.
  • Verwende den Befehl sudo vor dem Kopierbefehl, um Administratorrechte zu gewähren (z. B. sudo cp /pfad/zur/quelle /pfad/zum/ziel).

Speicherplatzprobleme

  • Stelle sicher, dass auf dem Ziellaufwerk genügend Speicherplatz für die zu kopierenden Dateien vorhanden ist.
  • Lösche unnötige Dateien oder verschiebe sie an einen anderen Ort, um Speicherplatz freizugeben.

Dateibeschädigungen

  • Überprüfe, ob die Quelldatei beschädigt ist, indem du sie mit einem Befehl wie sha256sum /pfad/zur/quelle verifizierst.
  • Versuche, die Datei erneut zu kopieren, nachdem du die Quelle repariert hast.

Dateinamenkonflikte

  • Wenn die Zieldatei bereits existiert, kannst du vom Betriebssystem aufgefordert werden, sie zu überschreiben oder umzubenennen.
  • Verwende die Option -n (keine Überschreibung), um bestehende Dateien zu überspringen, oder verwende die Option -i (interaktiv), um vor der Überschreibung zur Bestätigung aufzufordern.

Unbekannte Fehler

  • Überprüfe die Terminalprotokolle auf Fehlermeldungen (z. B. mit dem Befehl dmesg).
  • Überprüfe die Systemprotokolle (z. B. mit dem Befehl journalctl), um nach Fehlern zu suchen.
  • Konsultiere Online-Ressourcen (z. B. Linux-Manpages, Foren) oder wende dich an einen Systemadministrator, um Unterstützung zu erhalten.

Optimierung der Kopiergeschwindigkeit

Wenn du große Datenmengen kopieren musst, ist es wichtig, den Prozess so schnell wie möglich zu gestalten. Hier sind einige Tipps zur Optimierung der Kopiergeschwindigkeit:

Festplatten und Dateisysteme

  • Verwende Festplatten mit hoher Geschwindigkeit (z. B. SSDs) oder RAID-Arrays.
  • Fragmentiere deine Festplatten regelmäßig, um die Suchzeiten zu verkürzen.
  • Lösche unnötige Dateien und Ordner, um Speicherplatz freizugeben.

Komprimierung

  • Aktiviere die Komprimierung für das Dateisystem, auf dem die Dateien gespeichert werden.
  • Komprimiere die Dateien vor dem Kopieren mit Tools wie Gzip oder 7-Zip.

Dateipufferung

  • Erhöhe die Größe des Dateipuffers mit dem Befehl dd.
  • Verwende einen Puffercache, um die Lese-/Schreibleistung zu verbessern.

Parallele Verarbeitung

  • Nutze parallele Kopierwerkzeuge wie rsync --partial --progress oder xcopy /Z.
  • Kopiere Dateien auf mehrere Laufwerke gleichzeitig.

Weitere Tipps

  • Schließe alle anderen Anwendungen, die Festplattenressourcen verwenden.
  • Richte eine direkte Verbindung zwischen den beteiligten Computern ein.
  • Kopiere Dateien während der Stoßzeiten, wenn das Netzwerk weniger ausgelastet ist.

Automatisierung des Kopierprozesses

Wenn du regelmäßig große oder komplexe Kopieraufgaben durchführst, kann die Automatisierung des Prozesses dir wertvolle Zeit sparen und menschliche Fehler reduzieren. Hier sind einige Möglichkeiten, den Kopierprozess unter Linux zu automatisieren:

Planung von Kopieraufgaben

Mithilfe des Befehls cron kannst du Kopieraufgaben zu bestimmten Zeiten oder in regelmäßigen Abständen planen. Erstelle eine Crontab-Datei (crontab -e), füge die folgende Zeile hinzu und ersetze /pfad/zur/quelle und /pfad/zum/ziel durch die entsprechenden Pfade:

0 0 * * * cp /pfad/zur/quelle /pfad/zum/ziel

Verwendung von Skripten

Du kannst auch Shell-Skripte erstellen, um Kopieraufgaben zu automatisieren. Erstelle eine Datei mit der Erweiterung .sh und füge den folgenden Code hinzu:

#!/bin/bash
cp /pfad/zur/quelle /pfad/zum/ziel

Mach die Datei ausführbar (chmod +x dateiname.sh) und führe sie aus (./dateiname.sh).

Nutzung von Tools von Drittanbietern

Es stehen auch Tools von Drittanbietern zur automatisierten Dateikopie zur Verfügung.

  • rsync: Ein leistungsstarkes Tool für die Synchronisierung von Dateien zwischen zwei Verzeichnissen.
  • lftp: Ein FTP-Client mit einer benutzerfreundlichen Oberfläche, der für die automatisierte Dateikopie verwendet werden kann.
  • autofs: Ein Dateisystem, das Verzeichnisse bei Bedarf automatisch einbindet, was die Automatisierung von Kopieraufgaben zwischen verschiedenen Geräten erleichtert.

Überwachung des Fortschritts und Fehlerbehebung

Wenn du Kopieraufgaben automatisierst, ist es wichtig, deren Fortschritt und etwaige Fehler zu überwachen.

  • Überprüfe die Cron-Logs (/var/log/cron) oder die Ausgabedateien der Skripte, um den Status der Aufgaben zu ermitteln.
  • Aktiviere die Protokollierung in rsync oder anderen Tools, um detaillierte Informationen zu erhalten.
  • Implementiere Fehlerbehandlungsmechanismen, um bei Fehlern automatisierte Benachrichtigungen oder Wiederholungsversuche auszulösen.

Kopieren von Dateien zwischen verschiedenen Geräten

Sobald du die Grundlagen des Kopierens und Verschiebens von Dateien beherrschst, kannst du dich der Herausforderung stellen, Dateien zwischen verschiedenen Geräten zu kopieren. Es gibt mehrere Möglichkeiten, dies zu erreichen, je nach den beteiligten Geräten und der Verfügbarkeit von Netzwerkverbindungen.

Verwendung externer Speichergeräte

Eine gängige Methode zum Kopieren von Dateien zwischen Geräten ist die Verwendung externer Speichergeräte wie USB-Sticks, externe Festplatten oder SD-Karten. Schließe einfach das Gerät an eines der Geräte an und kopiere die Dateien mit den Befehlen cp oder mv, wie in den vorherigen Abschnitten beschrieben.

Beispiel:

cp /home/benutzer/Dokumente/bericht.docx /media/USB-STICK/Dokumente

Kopieren über ein Netzwerk

Wenn die zu kopierenden Geräte über ein Netzwerk verbunden sind, kannst du scp verwenden, um Dateien über das Netzwerk zu übertragen. scp (Secure Copy) ist ein sicheres Protokoll, das SSH (Secure Shell) verwendet, um Dateien zwischen entfernten Hosts zu kopieren.

Beispiel:

scp /home/benutzer/Bilder/foto.jpg [email protected]:/home/fernbenutzer/Bilder

Verwendung von Cloud-Diensten

Cloud-Dienste wie Google Drive, Dropbox oder Microsoft OneDrive bieten eine weitere Möglichkeit, Dateien zwischen verschiedenen Geräten zu kopieren. Lade einfach die Dateien in deinen Cloud-Speicher hoch und greife dann über ein anderes Gerät darauf zu. Du kannst die Dateien dann auf das neue Gerät herunterladen oder mit anderen Benutzern teilen.

Fehlerbehebung

Wenn du Probleme beim Kopieren von Dateien zwischen Geräten hast, prüfe Folgendes:

  • Sind beide Geräte eingeschaltet und miteinander verbunden?
  • Hast du die richtigen Berechtigungen, um auf die Dateien zuzugreifen und sie zu kopieren?
  • Ist genügend Speicherplatz auf dem Zielgerät vorhanden?
  • Ist die Netzwerkverbindung stabil und sicher?
  • Versuche es mit verschiedenen Kopierbefehlen oder -optionen.

Kopieren von Dateien über das Netzwerk

Dateien über ein Netzwerk zu kopieren kann dir Zeit und Mühe sparen, besonders wenn die Dateien groß sind oder zwischen Computern an unterschiedlichen Standorten geteilt werden müssen.

Kopieren von Dateien zwischen Computern im selben Netzwerk

Um Dateien zwischen Computern im selben lokalen Netzwerk zu kopieren, kannst du das scp-Kommando verwenden. Dies ist ein sicheres Kopierprotokoll, das die SSH-Authentifizierung verwendet.

scp quelle ziel

Beispiel:

scp /home/benutzer/datei1.txt [email protected]:/home/benutzer2/

Dies kopiert die Datei datei1.txt von deinem Computer zu einem Computer mit der IP-Adresse 192.168.1.100 und speichert sie im Verzeichnis /home/benutzer2/ des Benutzers benutzer2.

Kopieren von Dateien über das Internet

Um Dateien über das Internet zu kopieren, kannst du Tools wie rsync oder sftp verwenden.

rsync

rsync ist ein leistungsstarkes Tool, das inkrementelle Transfers unterstützt. Dies bedeutet, dass nur die Teile einer Datei kopiert werden, die sich seit der letzten Übertragung geändert haben.

rsync -av quelle ziel

Beispiel:

rsync -av /home/benutzer/verzeichnis1 [email protected]:/home/benutzer/verzeichnis2

Dies kopiert das Verzeichnis verzeichnis1 inkrementell in das Verzeichnis verzeichnis2 auf einem Remote-Server.

sftp

sftp ist ein interaktives Protokoll, das dir ermöglicht, Dateien sicher über SSH zu übertragen.

sftp [email protected]

Nach dem Verbinden kannst du Dateien mit Befehlen wie get und put kopieren.

get /home/benutzer/datei1.txt
put datei2.txt /home/benutzer

Fehlerbehebung

Wenn du Probleme beim Kopieren von Dateien über das Netzwerk hast, solltest du Folgendes prüfen:

  • Stelle sicher, dass du die richtige IP-Adresse oder den richtigen Hostnamen hast.
  • Überprüfe, ob SSH oder der entsprechende Dienst auf beiden Computern aktiviert ist.
  • Prüfe, ob du die richtigen Berechtigungen zum Lesen und Schreiben von Dateien hast.
  • Überprüfe, ob deine Firewall den Zugriff auf den entsprechenden Port blockiert.

Umgang mit versteckten Dateien und Berechtigungen

Beim Kopieren oder Verschieben von Dateien unter Linux kannst du auf versteckte Dateien und Berechtigungen stoßen. Hier findest du ein paar Tipps zum Umgang damit:

Versteckte Dateien

  • Was sind versteckte Dateien? Dies sind Dateien, deren Name mit einem Punkt beginnt (z. B. ".bash_profile"). Sie sind standardmäßig im Verzeichnis versteckt.
  • Wie zeige ich versteckte Dateien an? Verwende den Befehl ls -a (alle anzeigen).
  • Wie kopiere ich versteckte Dateien? Verwende die Option -a (Archiv) mit dem Kopierbefehl (z. B. cp -a /home/user/.bashrc /home/neuer_user/).

Berechtigungen

  • Was sind Berechtigungen? Dies sind Regeln, die den Zugriff auf Dateien und Verzeichnisse steuern. Sie legen fest, wer lesen, schreiben und ausführen darf.
  • Wie überprüfe ich Berechtigungen? Verwende den Befehl ls -l (lange Anzeige). Jede Datei hat eine Berechtigungszeichenfolge, die den Zugriffsrechten entspricht.
  • Wie ändere ich Berechtigungen? Verwende den Befehl chmod (Modus ändern), gefolgt von den neuen Berechtigungen (z. B. chmod 755 datei).
  • Wie kopiere ich Dateien mit geänderten Berechtigungen? Verwende die Option -p (beibehalten) mit dem Kopierbefehl (z. B. cp -p /home/user/datei /home/neuer_user/datei).

Weitere Beiträge

Folge uns

Neue Beiträge

Linux-Server

Linux Mint Installation auf Mac: So installierst du Linux Mint auf einem Mac sauber und schnell

AUTOR • Jun 11, 2026
Netzwerk & Routing

Deye SUN600G3 EU 230: Problemloesungen fuer WLAN Verbindungen, die sofort helfen

AUTOR • Jun 11, 2026
Automatisierung & Scripting

Grep unter Linux: Suche und Filterung von Dateien wie ein Profi

AUTOR • Jun 11, 2026
Linux-Server

Erstellung von Ordnern unter Linux: Die praktische Anleitung für schnelle, saubere Workflows

AUTOR • Jun 11, 2026
Automatisierung & Scripting

wget: Das mächtige Tool zum Herunterladen von Dateien und die Befehlszeilenoptionen, die ich wirklich nutze

AUTOR • Jun 11, 2026
Netzwerk & Routing

Bayern-WLAN Anmeldeseite kommt nicht: Ursachen und schnelle Lösungen

AUTOR • Jun 11, 2026
Systemadministration

Fritzbox 7490 kein Internetzugriff trotz Verbindung: Ursachen und Lösungen, die wirklich helfen

AUTOR • Jun 11, 2026
Netzwerk & Routing

Warum verbindet sich meine WLAN-Steckdose nicht? Die 11 häufigsten Ursachen und schnelle Lösungen

AUTOR • Jun 11, 2026
Sicherheit & Hardening

GoodWe Installateur Passwort: Sicherer Zugang zum Wechselrichtersystem richtig einrichten

AUTOR • Jun 11, 2026
Linux-Server

Die besten PDF-Editoren für Linux für höchste Produktivität und Präzision: Meine klare Auswahl

AUTOR • Jun 11, 2026
Systemadministration

Telegram auf Linux installieren: Einrichtung, Tipps und die schnellste saubere Nutzung

AUTOR • Jun 11, 2026
Netzwerk & Routing

FRITZ!Box 7520: Der umfassende Ratgeber für Highspeed-Heimnetzwerke

AUTOR • Jun 11, 2026
Netzwerk & Routing

Die ultimative Anleitung Teckin Steckdose Smart Home: Einfach gemacht

AUTOR • Jun 11, 2026
Sicherheit & Hardening

Fronius Inverter Reset: So setzt du deinen Fronius Wechselrichter schnell und sicher zurück

AUTOR • Jun 11, 2026
Linux-Server

Arch Linux Installation: Schritt-für-Schritt-Anleitung für Einsteiger ohne Chaos

AUTOR • Jun 11, 2026
Sicherheit & Hardening

Aktivierung von SSH unter Ubuntu: Schritt-für-Schritt-Anleitung für sicheren Remote-Zugriff

AUTOR • Jun 11, 2026
Netzwerk & Routing

DNS Server unter Linux: Einrichtung, Konfiguration und Verwaltung ohne Umwege

AUTOR • Jun 11, 2026
Netzwerk & Routing

Linux IP-Adresse anzeigen: Eine Anleitung

AUTOR • Jun 11, 2026
Netzwerk & Routing

Signalstärke dBm Tabelle: So liest du WLAN-, Funk- und Mobilfunkwerte richtig

AUTOR • Jun 11, 2026
Systemadministration

WinSCP unter Linux: Die ultimative Anleitung zur Verwaltung von Remote-Dateien

AUTOR • Jun 11, 2026

Beliebte Beiträge

Netzwerk & Routing

DBM WLAN: Messung der Signalstärke für optimale WLAN-Verbindungen

AUTOR • Apr 19, 2024
Linux-Server

PDF24 für Linux: Erstellen, Bearbeiten und Bearbeiten von PDFs unter Linux

AUTOR • Mar 18, 2026
Systemadministration

Linux Swap: Ein umfassender Leitfaden zu virtuellem Speicher

AUTOR • Apr 17, 2024
Systemadministration

So setzen Sie Ihre Meross-Steckdose ganz einfach zurück

AUTOR • Apr 19, 2024
Linux-Server

Linux Mint aktualisieren: Schritt-für-Schritt-Anleitung

AUTOR • Apr 17, 2024
Netzwerk & Routing

Ultraxtend Wifi Anleitung: Schritt-für-Schritt zur optimalen Nutzung

AUTOR • Dec 12, 2024
Netzwerk & Routing

Schritt-für-Schritt-Anleitung: Samsung-Drucker mit WLAN verbinden

AUTOR • Apr 19, 2024
Netzwerk & Routing

Hoymiles DTU Webinterface Aufrufen: Anleitung und Tipps

AUTOR • Apr 06, 2025
Systemadministration

Lubuntu Systemanforderungen - Optimale Voraussetzungen für eine reibungslose Nutzung

AUTOR • Dec 12, 2024
Linux-Server

AntiX Linux: Eine leichte und stabile Distribution für ältere PCs

AUTOR • Apr 17, 2024
Linux-Server

Batocera: Das ultimative Retro-Gaming-Erlebnis auf Linux

AUTOR • Apr 17, 2024
Linux-Server

So installieren Sie ein neues Betriebssystem auf Ihrem Tablet – Eine Schritt-für-Schritt-Anleitung

AUTOR • Oct 13, 2025
Automatisierung & Scripting

Die ultimative Anleitung zum Linux-Befehl 'ls': Verzeichnisse wie ein Profi anzeigen

AUTOR • Apr 17, 2024
Linux-Server

Solus: Das minimalistische und flexible Linux-Betriebssystem

AUTOR • Apr 17, 2024
Automatisierung & Scripting

PIP installieren: Schritt-für-Schritt-Anleitung für Python-Paketverwaltung

AUTOR • Apr 17, 2024
Automatisierung & Scripting

Schnelle und einfache Installation von tar.gz unter allen Betriebssystemen

AUTOR • Apr 17, 2024
Netzwerk & Routing

LAN vs. WLAN: Ein Vergleich der Vor- und Nachteile

AUTOR • May 09, 2024
Systemadministration

Debian Benutzer Anzeigen: So Geht's Effizient

AUTOR • Dec 12, 2024
Automatisierung & Scripting

Smart Life App für Balkon-Kraftwerke: Intelligente Steuerung für deinen Sonnenstrom

AUTOR • Apr 19, 2024
Linux-Server

Kleine Linux-Distributionen: Leichtgewichtig, schnell und effizient

AUTOR • Apr 17, 2024