9
votes

Création d'un lien symbolique dans un script Bash dans un dossier différent

Mon script bash obtient deux arguments avec des dossiers (qui existent et tout).

Dans le premier, je veux créer un lien vers le second p>

Supposons que j'ai les dossiers / home / mat / a et / home / mat / b, j'appelle le script comme ceci: p>

ln -s $2 $1/link


0 commentaires

3 Réponses :


1
votes
#!/bin/sh
cd $2
ln -s "`pwd`" $1/link

2 commentaires

Il échoue, à la recherche de 1 $ / link à l'intérieur de 2 $ ... en ce moment, j'essaie surtout en utilisant uniquement des chemins relatifs pour les deux arguments ...


Avez-vous des noms de fichiers avec des espaces en eux? Cela pourrait expliquer pourquoi cela ne fonctionne pas sans une bonne citation (comme illustré par Dennis Williamson).



6
votes

Donner cette essayer:

cd "$2"
dir=$(pwd)
cd -
ln -s "$dir" "$1/link"


0 commentaires

1
votes

Voici une autre mignon doublure one-liner: xxx


1 commentaires

Vous pouvez éviter les échappés maladroits en utilisant $ () au lieu de backticks: ln -s "$ (CD" $ (DIRNAME "$ 2") "; € 2 $ (Name" $ ")" "1 $ / lien"