Dies kann als Einliner wie folgt durchgeführt werden:
find "/path/to/FolderA" -type f -name "*iso" -exec ln -s {} /path/to/symlinkfiles \;
Um daraus ein Skript zu machen
#!/bin/bash SOURCEFILES="/path/to/folderA" FLATTENEDFILEDIR="/path/to/folderB" find "$SOURCEFILES" -type f -name "*.iso -exec ln -s {} $FLATTENEDFILEDIR \;
Dies funktioniert folgendermaßen: Der Befehl find sucht nach Dateien an einem bestimmten Ort, der "Typ f" bedeutet, dass er nur nach Dateien sucht. Symlinks und Unterverzeichnisse werden nicht ausgeführt (die Verzeichnisse werden jedoch nach Dateien durchsucht), die * .iso-Datei erwartet, dass dies die Dateierweiterung ist.
Der zweite Teil (after -exec) wird für jede Datei ausgeführt und erstellt den Symlink.
Möglicherweise möchten Sie oben in diesem Skript etwas wie "rm -r $ FLATTENEDFILESDIR / *" einfügen, wenn Sie vorhandene Symlinks entfernen dürfen, damit Sie nicht mit Toten landen Wenn Sie dies nicht tun, kann dies zu einem Großteil Ihres Systems führen!