GNU/Linux >> Znalost Linux >  >> Linux

Jak vytvořit symbolické odkazy na všechny soubory (třídu souborů) v adresáři?

ln bere více argumentů, ale v takovém případě nezapomeňte uvést cílový adresář.

Takže ve vašem příkladu . je cílový adresář, takže by to mělo být stejně snadné jako

ln -s ../source/*.bar .

Od man ln; výše uvedený příkaz používá 3. tvar:

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)
  • V 1. formuláři vytvořte odkaz na TARGET s názvem LINK_NAME.
  • Ve 2. formuláři vytvořte odkaz na TARGET v aktuálním adresáři.
  • Ve 3. a 4. formuláři vytvořte odkazy na každý TARGET v DIRECTORY.

Můžete to zkusit rekurzivně buď pomocí globstar (bash/zsh nastavené:shopt -s globstar ):

ls -vs ../**/*.bar .

Nebo pokud je seznam příliš dlouhý, použijte find nástroj:

find .. -name \*.bar -exec ln -vs "{}" dest/ ';'

Tím se vytvoří odkazy v dest/ nebo jej změňte na . pro aktuální složku.


Použijte find

certainDir="/path/to/dir"
find -name "*.bar" -exec ln -s {} "$certainDir" \;

Nezapomeňte také použít úplné cesty (pokud je to možné) se symbolickými odkazy.


Linux
  1. Jak přesunout všechny soubory (včetně skrytých) z jednoho adresáře do druhého?

  2. Jak přesunout všechny soubory z aktuálního adresáře do horního adresáře?

  3. Jak zkopírovat symbolické odkazy?

  1. Jak vytvořit pevné a symbolické odkazy v Linuxu

  2. Jak chown/chmod všechny soubory v aktuálním adresáři?

  3. Odstraňte všechny symbolické odkazy souborů jedním příkazem

  1. Jak vytvořit sdílený adresář pro všechny uživatele v Linuxu

  2. Jak najít soubor v Linuxu ve všech adresářích rekurzivně

  3. Rozbalte všechny soubory v adresáři