jobastr a écritJe ne sais pas si j'ai été très clair.
Oui, c'est beaucoup plus clair maintenant !
A priori tu utilises Nautilus, donc il faudrait réaliser un petit script appelé par nautilus-action ou nautilus-script.
Dans le script il y aurait une ligne du genre :
ln -s "$1" "$(zenity --title "Création d'un lien symbolique" --entry --text "Entrer le nom du lien qui pointeras vers '$1', puis validez :")"
Le problème est qu'il faudrait remplacer "$1" par la sélection de Nautilus, et je ne sais pas quelle est la variable qui fait ça.
Je suis sous Thunar, et j'utilise très peu Nautilus, mais ta demande est l'occasion de se lancer 😃
Je vais potasser un petit peu plus et j'essai de te pondre un truc sympa.
EDIT : ça y est j'ai fait le script :
#!/bin/bash
IFS=$'\n'
declare -a liste
echo "Sélection : $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
echo "En cours : $file"
# Retirer le '\n' en fin de fichier
file="$(echo -n $file)"
if [ -d "$file" ]
then
type="dossier"
file="${file%/}"
else
type="fichier"
fi
dir="${file%/*}"
cible="${file##*/}"
cd "$dir"
# Par défaut, on garde le nom du dernier lien créé
lien="$(zenity --entry --title "Création d'un lien symbolique" --entry-text="$lien" --text "Entrer le nom du lien qui pointeras vers le $type '$cible', puis validez :")"
if [ $? -eq 0 ] && [ -n "$lien" ]
then
ln -s -T "$cible" "$lien"
liste+=( "$lien --> $cible" )
fi
done
zenity --info --title "Création d'un lien symbolique" --text "Les liens suivants ont été créés :\n${liste[*]:-"aucun lien créé"}"
exit 0
A copier/coller dans un fichier placé dans ~/.gnome2/nautilus-scripts/
Il faut également rendre le script exécutable ensuite.
Par exemple :
gedit "~/.gnome2/nautilus-scripts/Créer un lien"
chmod +x "~/.gnome2/nautilus-scripts/Créer un lien"
Tu peux sélectionner plusieurs fichiers ou dossiers à la fois, le script te demandera le nom du lien pour chacun.
Attention : si le lien existe déjà, il ne sera pas remplacé, mais il apparaitra en double dans le récapitulatif.
(On pourrait tester le code retour de ln avant de l'ajouter à la liste).