Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde 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