ln
nimmt mehrere Argumente, aber vergessen Sie in diesem Fall nicht, ein Zielverzeichnis anzugeben.
In Ihrem Beispiel also .
ist das Zielverzeichnis, also sollte es so einfach sein wie
ln -s ../source/*.bar .
Ab man ln
; Der obige Befehl verwendet die 3. Form:
ln [OPTION]... [-T] TARGET LINK_NAME (1st form)
ln [OPTION]... TARGET (2nd form)
ln [OPTION]... TARGET... DIRECTORY (3rd form)
ln [OPTION]... -t DIRECTORY TARGET... (4th form)
- Erstellen Sie in der 1. Form einen Link zu TARGET mit dem Namen LINK_NAME.
- Erstellen Sie in der 2. Form einen Link zu TARGET im aktuellen Verzeichnis.
- Erstellen Sie in der 3. und 4. Form Links zu jedem TARGET in DIRECTORY.
Sie können es rekursiv entweder mit globstar versuchen (bash/zsh gesetzt durch:shopt -s globstar
):
ls -vs ../**/*.bar .
Oder wenn die Liste zu lang ist, verwenden Sie find
Dienstprogramm:
find .. -name \*.bar -exec ln -vs "{}" dest/ ';'
Dadurch werden Links in dest/
erstellt , oder ändern Sie ihn in .
für den aktuellen Ordner.
Verwenden Sie find
certainDir="/path/to/dir"
find -name "*.bar" -exec ln -s {} "$certainDir" \;
Denken Sie auch daran, vollständige Pfade zu verwenden (wo möglich) mit symbolischen Links.