![Wie kann ich Dateien aus vielen Unterverzeichnissen in ein anderes Verzeichnis kopieren und dabei die Verzeichnisstruktur beibehalten?](https://rvso.com/image/1072581/Wie%20kann%20ich%20Dateien%20aus%20vielen%20Unterverzeichnissen%20in%20ein%20anderes%20Verzeichnis%20kopieren%20und%20dabei%20die%20Verzeichnisstruktur%20beibehalten%3F.png)
Ich habe ein Verzeichnis mit vielen ähnlichen Unterverzeichnissen. Jedes dieser Unterverzeichnisse enthält einige Dateien, die mich interessieren, und einige, die mich nicht interessieren.
Ich möchte kopieren:
VON: zwei bestimmte Dateien: file1.txt file2.json aus jedem Unterverzeichnis
AN: ein anderer Ort
Aber die Unterverzeichnisse an diesem Ort zu erstellen
Wenn ich zum Beispiel
base
|_folder_00000001
| |_-file1.txt
| |_ file2.json
| |_some_other_things_I_dont_need
| |_some_other_folder_I_dont_need
|
|_folder_00000002
| |_-file1.txt
| |_ file2.json
| |_some_other_things_I_dont_need
| |_some_other_folder_I_dont_need
|
|_folder_00000003
| |_-file1.txt
| |_ file2.json
| |_some_other_things_I_dont_need
| |_some_other_folder_I_dont_need
|
|_folder_00000004
| |_-file1.txt
| |_ file2.json
| |_some_other_things_I_dont_need
| |_some_other_folder_I_dont_need
|
Ich möchte dies an einen anderen Ort kopieren, aber ohne die "anderen Dinge und Ordner, die ich nicht brauche"
target
|_folder_00000001
| |_-file1.txt
| |_ file2.json
|
|
|_folder_00000002
| |_-file1.txt
| |_ file2.json
| |
|_folder_00000003
| |_-file1.txt
| |_ file2.json
| |
|_folder_00000004
| |_-file1.txt
| |_ file2.json
|
Wie kann ich dies vom Bash-Terminal aus tun?
Antwort1
Sie können es verwenden cp
mit --parents
:
cd base
cp -v --parents */file1.txt */file2.json ../target/
Antwort2
Gibt es ein Muster für die Dateien, die Sie kopieren möchten?
Wenn wir im Beispiel die Dateien „-file1.txt“ und „file2.json“ als die Dateien nehmen, die Sie in die neue Verzeichnisstruktur kopieren möchten, kann dies meiner Meinung nach folgendermaßen erfolgen:
rsync -av --include="*/" --include="*-file1.txt" --include="*file2.json" --exclude="*" /src/dir/ /dest/dir/
Ich hoffe das hilft.