
Angenommen, dieser Baum (top-X und tX-sub-X sind Ordner und alle Unterordner enthalten eine CSV-Datei und verschiedene andere Dateierweiterungen.)
Base
├── top-1
│ ├── t1_sub-1
│ ├── t1_sub-2
│ └── t1_sub-3
│
└── top-2
├── t2_sub-1
├── t2_sub-2
└── t2_sub-3
und alle Unterordner, die eine CSV-Datei und verschiedene andere Dateierweiterungen enthalten.
kann ich für alle CSV-Dateien in der Basis einen symbolischen Link zu einem anderen Baum erstellen und Folgendes erhalten:
Symlinked_base
├── top-1 #directories aren't symlink
│ ├── t1_sub-1 #contains only .csv symlink
│ ├── t1_sub-2
│ └── t1_sub-3
│
└── top-2
├── t2_sub-1
├── t2_sub-2
└── t2_sub-3
Ich kann es jetzt nicht testen, würde aber:
sudo find . -name "*.csv" -exec cp -Rs '{}' /path/to/Symlinked_base/
Wenn -R nicht unterstützt wird, würde Folgendes funktionieren?:
sudo find . -name "*.csv" -exec cp -parents -s '{}' /path/to/Symlinked_base/
Antwort1
Stow ist ein Paket zur Verwaltung von Symlink-Bäumen. Sie können die Option --no-folding verwenden, um Verzeichnisse am Ziel zu erstellen, anstatt die Verzeichnisse selbst zu verknüpfen – damit sollten Sie das gewünschte Ergebnis erzielen.