2017-07-06 10 views
0

Der Titel nicht der beste sein könnte, ich entschuldige mich, ich bin ziemlich neu zu Skripten.cp Hunderte von Dateien in verschiedenen Verzeichnissen

Ich versuche, 2 Dateien aus jedem Verzeichnis zu kopieren und diese Verbindungen in einem separaten Verzeichnis, das nur Verzeichnisnamen teilt.

für Klarheit;

/path/to/directory/all/variable_directories/ 

In diesem Verzeichnis mehrere Dateien sein wird, ich brauche 2-Dateien, die die gleichen Namen in jedem einzelnen Variable Verzeichnis haben.

ich diese 2 Dateien von jedem einzelnen variablen Verzeichnis zu kopieren versuchen und sich auf dem Basisnamen von/variable_directory Sitz in variablen Verzeichnissen setzen/

das Kopierziel sein wird;

/path/to/magical/shit/subset/set_with_variable_name/variable_directories/ 

nur einige der Zielverzeichnisse in jedem/set_with_variable_name befinden/

Das Skript müssen in der Lage sein, jede/set_with_variable_name zu durchlaufen/bis er das Verzeichnis findet, die den Basisnamen des Verzeichnisses, teilt dass diese Dateien ursprünglich von

cp'd werden Es gibt etwa 100 Verzeichnisse zu cp von und zu und etwa 200 Dateien insgesamt, die entsprechend kopiert und sortiert werden müssen.

Ich kann es erhalten, um alle Dateien in das Verzeichnis SAME mit; cp;

Es ist die Sortierung der Dateien zu den richtigen Zielen, die ich vollständig verloren habe.

ich jede Hilfe dankbar, ich bin ein Neuling auf diese Art von Scripting

Antwort

0

Sieht aus wie man so etwas brauchen.

# looping through all the variable directories 
for var_dir in <path1>/all/*; do 

    # creating the destination directory if not exists 
    mkdir -p "<path2>/set_with_variable_name/$(basename ${var_dir})" 

    # copying the first file 
    cp "${var_dir}/filename1" "<path2>/set_with_variable_name/$(basename ${var_dir})/filename1" 

    # and the second 
    cp "${var_dir}/filename2" "<path2>/set_with_variable_name/$(basename ${var_dir})/filename2" 
done 
Verwandte Themen