#1 Le 08/04/2014, à 15:16
- marin1992
liens symboliques vers le bureau
Bonjour,
Afin de faciliter l'accès pour les élèves à Ubuntu, je dois mettre des raccourcis sur le bureau des différents dossiers dont ils ont besoin.
Ces dossiers sont créés à partir de données stockées dans un fichier csv.
J'ai tenté avec la commande ln -s mais cela ne marche pas tout comme avec cp -r.
Connaitriez-vous un autre moyen pour faire cela sans une de ces 2 commandes?
Merci d'avance
Hors ligne
#2 Le 08/04/2014, à 15:56
- nesthib
Re : liens symboliques vers le bureau
Pour faire un lien il te faut la commande ln. Pour que l'on puisse t'aider, peux-tu donner les commandes que tu as essayées et leur retour ?
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#3 Le 08/04/2014, à 16:20
- casperfr
Re : liens symboliques vers le bureau
Salut marin1992,
je t'ai d'ailleur mis un ptit truc dans ton dernier message posté,
sinon, un ptit script pourrais faire l'affaire,
c'est pas très propre mais sa peux fonctionner rapidement,
1 - je suppose que dans tes machines des comptes ont été créé avec un dossier de profile qui est dans le home,
je propose donc de récupéré tous les comptes avec :
user=$(cut -f6 -d: /etc/passwd)
puis faire une boucle pour créé le lien dans tous les utilisateur
for i in $user
do
on va donc réduire les utilisateurs a ceux qui possède un profile dans le /home
usertest=$(echo $i | cut -c 1-6)
if [[ $usertest == "/home/" ]]; then
ouvrir ton fichier csv dans lequel se trouve tes liens
fichierlien=$(cat /emplacement_des_liens)
puis placer tous les liens symbolique sur les bureaux des utilisateurs
j=0
for lien in fichierlien
do
((j++))
ln -s "$user/Bureau/lien$j" $lien
done
je ne sais pas comment extraire le dernier nom pour donner ce nom au fichier symbolique pour qu'il possède un nom représentatif de cette emplacement,
je les ais donc appelé lien1 / lien 2 etc etc en fonction de ton csv
donc le bash que je te propose
#! /bin/bash
user=$(cut -f6 -d: /etc/passwd)
for i in $user
do
usertest=$(echo $i | cut -c 1-6)
if [[ $usertest == "/home/" ]]; then
fichierlien=$(cat /emplacement_des_liens)
j=0
for lien in fichierlien
do
((j++))
ln -s "$user/Bureau/lien$j" $lien
done
fi
done
c'est des boucles sans arret donc je sais que certain vont dire que c'est pas génial,
mais si quelqu'un de plus compétant peut aidé a faire un code plus fonctionnel, je penses que cela pourra faire ton bonheur,
bon courage
Dernière modification par casperfr (Le 08/04/2014, à 16:21)
Hors ligne