GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So kopieren Sie Dateien mit einer bestimmten Dateierweiterung rekursiv

Unter Linux ist der Befehl „cp “, welche Standards für „Kopieren ‘ wird verwendet, um Dateien und Ordner in einen anderen Ordner zu kopieren. Es ist standardmäßig in Linux als Teil der GNU Coreutils verfügbar Werkzeugsatz.

Die einfachste Verwendung des cp-Befehls besteht darin, die zu kopierenden Dateien als Argumente und den Zielordner als letztes Argument anzugeben.

$ cp file1 file2 file3... fileN target_folder/

Dateien mit bestimmten Dateierweiterungen kopieren

Sie können sogar Dateien mit derselben Dateierweiterung kopieren (z. B. .txt , .jpg , .mp4 ) zusammen mit Platzhalterzeichen, wie unten gezeigt:

$ cp *.jpg *.mp4 *.mp3 media/

Dadurch wird das gesamte JPEG kopiert Bilder, MP3, und MP4 Multimediadateien in den Ordner „media“. ‘. Beachten Sie, dass dies nur für Dateien verwendet werden kann. Wenn Sie versuchen, Ordner im obigen Format zu kopieren, wird eine Warnung ausgegeben, dass der Ordner „Nicht leer ist ‘.

Um Ordner zu kopieren, müssen wir den '-r' angeben (rekursiv ) Flagge. Rekursiv bedeutet, dass alle Dateien in diesem Ordner, die Dateien in den Unterordnern usw. kopiert werden.

$ cp -r folder1/ folder2/ file1 file2 target_folder/

Es gibt jedoch keinen Weg innerhalb von 'cp' um Dateien einer bestimmten Erweiterung rekursiv zu kopieren. Immer wenn '-r' angegeben ist, berücksichtigt das Programm immer alle Dateien in den Unterordnern zum Kopieren.

Dateien mit Dateierweiterung suchen und kopieren

Um dies zu erreichen, verwenden wir den find-Befehl, der einfach verwendet wird, um unter Linux nach Dateien und Ordnern zu suchen, basierend auf den Parametern der Datei oder des Ordners:Dateiname, Erweiterung, Größe usw.

Wir werden den Suchbefehl verwenden um Dateien mit einer bestimmten Dateierweiterung rekursiv zu finden und diese Ausgabe dann an cp zu übergeben Befehl, sie zu kopieren.

Syntax zum Auffinden von Dateien einer bestimmten Erweiterung mit dem Suchbefehl ist:

$ find <folder_to_search> -name ‘*.<extension>

Um beispielsweise alle JPG-Dateien rekursiv im aktuellen Ordner zu finden:

$ find . -name '*.jpg'

Schließlich müssen wir diese Ausgabe an den cp-Befehl weiterleiten . Dazu verwenden wir die „xargs“ Befehl, um 'cp' zu machen Betrachten Sie die Ausgabe von ‘find‘ als seine Argumente. Außerdem verwenden wir den '-t' Flagge von cp , um das Zielverzeichnis anzugeben, ohne das das Programm die Ausgabe von ‘find‘ berücksichtigt als Zielverzeichnis.

$ find . -name '*.jpg' | xargs cp -t Pictures2/

Also alle Dateien mit der Endung '.jpg' wurden in den Ordner ‘Pictures2’ kopiert .

Schlussfolgerung

In diesem Artikel haben wir gelernt, wie man Dateien mit einer bestimmten Erweiterung unter Linux rekursiv kopiert. Beachten Sie, dass diese Methode nützlich ist, wenn Sie mit einer kleineren Anzahl von Dateien arbeiten. Für eine große Anzahl von Dateien (z. B. Zehntausende) müssen Sie einen anderen Ansatz verwenden, um die Dateien rekursiv zu kopieren.

Wenn Sie Fragen oder Feedback haben, teilen Sie uns dies in den Kommentaren unten mit.


Linux
  1. Wie verwendet man Inotifywait, um ein Verzeichnis für die Erstellung von Dateien einer bestimmten Erweiterung zu überwachen?

  2. Wie man Verzeichnisse rekursiv mit rsync kopiert und dabei bestimmte Dateien ausschließt

  3. Suchen Sie rekursiv nach Dateien mit einer bestimmten Erweiterung

  4. Wie kopiere ich eine Datei, die mit einem Punkt beginnt?

  5. Wie kann ich Dateien rekursiv nach Dateierweiterung kopieren und dabei die Verzeichnisstruktur beibehalten?

So kopieren Sie Dateien und Verzeichnisse unter Linux

So tarieren Sie bestimmte Dateitypen (Erweiterungen) in einem Verzeichnis

So entfernen Sie Dateien mit einer bestimmten Erweiterung in Linux

So schließen Sie bestimmte Dateierweiterungen beim rekursiven Kopieren von Dateien aus

So kopieren Sie Dateien und Verzeichnisse im Linux-Terminal

Wie füge ich eine Option zum Erstellen einer neuen Datei mit einer bestimmten Erweiterung im Rechtsklickmenü hinzu?