J'ai créé un raccourci via l'option "créer un lien". Lorsque j'entre dans le dossier de ce raccourci, je ne vois aucun dossier au-dessus, je ne peux donc pas y accéder facilement.
Existe-t-il un moyen de remonter un dossier dans l'interface graphique? Peut-être un raccourci clavier? (Je ne peux pas faire cd ..
cette fois ^ __ ^).
Sous Windows par exemple je suis en effet capable de naviguer de la manière que je décris, voici une image Win10 qui l'explique:
nautilus
symbolic-link
JohnDoea
la source
la source
Alt+up key
Réponses:
Pourquoi c'est une question difficile
La question présente quelques défis:
nautilus
ne communique pas directement depuis la ligne de commande, pour obtenir le répertoire actuellement actif par exemple, et vous ne pouvez pas "envoyer" le dossier actuellement ouvert (-window) vers un autre répertoire à partir de la ligne de commande."NAUTILUS_SCRIPT_CURRENT_URI"
, Nautilus ne renvoie pas le chemin d'accès réel au dossier actuel, mais "voit" le lien comme s'il s'agissait d'un dossier réel.La solution est donc aussi sale que possible; nous devons trouver des solutions. Ci-dessous quatre options pour résoudre le problème.
1. clic droit pour monter d'un niveau
Pour obtenir le vrai chemin vers le répertoire courant, nous devons récupérer des informations à partir du lien. Nous pouvons le faire soit en utilisant
ls -l
le lien, qui affichera par exemple:où la section après
->
est le vrai chemin à l'intérieur du lien symbolique, ou, en utilisantpython
:En utilisant cela dans un
nautilus
script, nous pouvons indirectement obtenir le chemin réel vers le fichier ou le dossier actuel.Ensuite, si nous avons le chemin, comment faire remonter le nautile d'un niveau?
Encore une fois, nous ne pouvons pas résoudre ce problème et garder nos mains propres. Pour monter d'un niveau, nous éditons d'abord un peu le chemin trouvé, à partir de:
dans
puis, en utilisant
xdotool
pour simuler Ctrl+ L(le raccourci GUI pour insérer un chemin dans une fenêtre nautilus, puisqu'il n'y a pas d'option cli pour se déplacer vers un autre répertoire en utilisant la fenêtre courante ), et ensuite fairexclip
coller le chemin édité + Enter, nous avons une solution de travail !En pratique
Nous sommes dans un dossier, ouvert à partir d'un lien ("Lien vers télégramme") sur mon bureau. Le vrai dossier est un sous-dossier de mon
Downloads
dossier:Ensuite, si nous faisons un clic droit sur l' un des fichiers à l'intérieur du dossier pour exécuter le script:
Automatiquement, le chemin vers le répertoire supérieur est inséré:
Et, aussi automatiquement, Returnest pressé, et nous remontons d'un niveau de répertoire:
Le script
Comment installer
Le script a besoin des deux
xdotool
etxclip
:créer, s'il n'existe pas déjà, le répertoire
Copiez le script ci-dessus dans un fichier vide, enregistrez-le sous
level_up
(sans extension)~/.local/share/nautilus/scripts
et rendez-le exécutableVous devriez maintenant pouvoir exécuter le script en cliquant avec le bouton droit sur un fichier (n'importe lequel)> scripts> level_up:
[ EDIT ] J'ai changé le script ci-dessus pour coller le chemin dans la
nautilus
fenêtre, au lieu de lexdotool
taper . C'estneeds
xclip
à installer, mais c'est une amélioration majeure, surtout sur les très longs chemins.2. Alternativement, ouvrez une nouvelle fenêtre nautilus dans le répertoire supérieur
Vous pouvez éviter d'utiliser
xdotool
, en ouvrant le script une nouvelle fenêtre nautilus, dans le répertoire parent. Le script serait alors encore plus court:Dans ce cas, vous n'auriez pas besoin d'installer
xdotool
. Nous pourrions même étendre le script en fermant la fenêtre d'origine et en plaçant la nouvelle fenêtre exactement dans la même position (& taille).L'inconvénient est que l'historique de la fenêtre d'origine est perdu de cette façon.
3. Une solution supplémentaire: moyen alternatif de créer (automatiquement) des liens
Ne concerne pas les liens existants, mais lorsqu'il est utilisé à partir de l'interface graphique, un script nautilus pour créer automatiquement des
.desktop
fichiers exécutables par clic droit peut être utile:clic droit sur le répertoire pour créer un raccourci (se comportant comme un lien)
Contrairement aux liens symboliques, ces liens vous mèneront au dossier réel, sans se comporter comme un dossier lui-même:
Le script
Comment utiliser
make_link
(sans extension)~/.local/share/nautilus/scripts
et rendez-le exécutable.desktop
fichier exécutable sera créé dans le même répertoire, déplacez-le ailleurs si nécessaire; le chemin lié est absolu.Donnez au lien une icône distinctive
Vous pouvez donner au lien alternatif une icône distinctive. Si vous recherchez dans le répertoire
/usr/share/icons
"dossier", de nombreuses options valides apparaissent.Si dans le script la ligne
"Icon=folder",
est remplacée parIcon=stock_folder-copy,
(utilisez le nom de l'icône sans extension), le résultat sur mon système est:Bien sûr, vous pouvez également utiliser votre propre icône personnalisée, mais si vous utilisez des chemins d'accès complets (ne pas utiliser
~
), vous devez inclure l'extension de l'icône.4. Accédez au répertoire supérieur avec une touche de raccourci
Probablement l'option la plus pratique; avec la fenêtre nautilus devant, appuyez sur une touche de raccourci pour déplacer un répertoire vers le haut.
Le script
Utiliser
Pour cette solution, à la fois
xclip
et ontxdotool
besoin d'être sur votre système.Copiez le script dans un fichier vide, enregistrez-le sous
level_up.py
(n'importe où).Ajoutez-le à une touche de raccourci: choisissez: Paramètres système> "Clavier"> "Raccourcis"> "Raccourcis personnalisés". Cliquez sur le "+" et ajoutez la commande:
NB Les options de raccourci sont un peu limitées dans ce cas, car le script lui - même simuleraCtrl+L, etCtrl+Alt+Lvous fera vous déconnecter ...Ctrl+\a bien fonctionné sur mon système.
Explication
Ce script simule également Ctrl+ L, mais au lieu d'utiliser nautilus
"NAUTILUS_SCRIPT_CURRENT_URI"
, il utilisexclip
pour copier le chemin sélectionné automatiquement dans la fenêtre nautilus. Comme l'option 1, le script calcule ensuite le chemin réel et dérive le répertoire supérieur.Cette option peut être utile si vous préférez le clavier à un clic droit.
la source
Ou pour Ubuntu 14.04, nautilus 3.10-1, avec le
xdotool
package ajouté, utilisez simplement ce qui suit dans votre.local/share/nautilus/scripts/updirtree
fichier:Le devis final doit simplement contenir une nouvelle ligne ou return (
0x0a
). Lepwd
Nautilus produit un résultat différent de celui exécuté à partir d'un bash / terminal - il renvoie le chemin réel, pas le chemin utilisant le lien.Je suis d'accord que cela n'a aucun sens, il n'est pas documenté, et je ne peux même pas comprendre quel type d'environnement d'exécution exécute le code (je ne trouve aucun shell qui produit ce résultat), mais cela fonctionne. C'est un hack, c'est pourquoi j'ai inclus la version de nautilus. Qui sait combien de temps cela va fonctionner? Peut se casser lors de la prochaine mise à niveau de Nautilus (ou de l'interpréteur inconnu), mais pour moi, cela fonctionne sur les liens vers les emplacements montés, les liens vers les emplacements dans l'arborescence des répertoires, ou tout simplement les emplacements ordinaires dans l'arborescence des répertoires.
la source
$(pwd)
c'est le répertoire de travail du shell , pas de nautilus . Voir help.ubuntu.com/community/NautilusScriptsHowtoxclip
coller le chemin, qui n'est pas soumis à la longueur du chemin.Un correctif propre mais qui nécessite une reconstruction de la source en annulant ce commit :
Instructions de construction:
Source de téléchargement:
Télécharger les dépendances de build
Faites la modification nécessaire à partir du patch ci-dessus
Éditer
src/nautilus-mime-actions.c
Créez et installez-le
Pour tester sans installation
Pour l'installer
Cela fera que nautilus résoudra les liens dans leur chemin cible. BTW, cela a été signalé comme bogue il y a quelque temps. Si vous pensez que c'est une fonctionnalité, soumettez un autre rapport de bogue, en lui demandant de définir un commutateur ou un raccourci spécifique.
Référence: Comment puis-je empêcher Nautilus de déréférencer les liens symboliques? [fermé]
la source
/usr/local/bin/
, donc le système exécutera toujours la copie modifiée, comme indiqué dans$PATH