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

Kopieren Sie alle Dateien, die dem Muster entsprechen, aus Verzeichnis und Unterverzeichnissen in ein einzelnes Verzeichnis

Versuchen Sie:

find src/ -type f | grep -i so$ | xargs -i cp {} dst

Wenn Sie Bash verwenden, können Sie globstar einschalten Shell-Option, um Dateien und Verzeichnisse rekursiv abzugleichen:

shopt -s globstar
cp src/**/*.so dst

Wenn Sie Dateien finden müssen, deren Namen mit . beginnen , und/oder Dateien in und unter Verzeichnissen, deren Namen mit . beginnen , setzen Sie den dotglob Option auch (z.B. mit shopt -s dotglob ). Sie können beide in einem Befehl festlegen:

shopt -s globstar dotglob

Ich habe den von Mike vorgeschlagenen Befehl ausprobiert:

find src/ -type f | grep -i so$ | xargs -i cp {} dst

aber es endete damit, dass alle Dateien in das Verzeichnis dst verschoben wurden mit ihren relativen Pfaden verloren.

Um die relativen Pfade beizubehalten, muss der Befehl wie folgt geändert werden:

find src/ -type f | grep -i so$ | xargs -i cp {} dst/{}

Linux
  1. Skript / Befehl zum Abrufen von IPs aus einer Liste von Hostnamen und zum Kombinieren in einer einzigen Datei?

  2. Erfahren Sie, wie Sie Dateien und Ordner von/auf einen anderen Server kopieren

  3. Kopieren Sie Dateien mit SCP und Rsync

  4. Befehl zum Auflisten aller Dateien außer . (Punkt) und .. (Punkt Punkt)

  5. Rekursives Cat alle Dateien in einer einzigen Datei

Kopieren Sie Dateien zwischen Linux und FreeDOS

3 Möglichkeiten zum Extrahieren und Kopieren von Dateien aus dem ISO-Image unter Linux

So kopieren Sie Dateien und Verzeichnisse unter Linux

So verwenden Sie den cp-Befehl zum Kopieren von Dateien und Verzeichnissen

Wie kopiere ich Dateien von Dockerfile auf den Host?

Wie kann ich alle PDF-Dateien in einem Verzeichnis (und seinen Unterverzeichnissen) rekursiv in ein einziges Ausgabeverzeichnis kopieren?