La complétion du chemin de tabulation ne fonctionne pas (au moins sur Ubuntu et AFAIK Arch) avec
sudo mount <whatever>
Le fichier ISO que j'essaye de monter n'est pas dans /etc/fstab
. Si je tape juste
mount <whatever>
l'achèvement fonctionne (mais bien sûr la commande échoue car je ne suis pas root). Apparemment, c'est ça sudo
qui le brise.
Comment faire fonctionner la complétion avec sudo?
Il est surprenant qu’avec
sudo umount <whatever>
travaux d'achèvement. Comment est-il réalisé? Regarde-t-il /etc/fstab
?
Solution: Je viens de mettre un script shell dans /usr/local/bin
ces appels sudo mount ...
avec les arguments qui lui sont passés. L'achèvement fonctionne lors de l'appel de ce script car il n'y a aucun sudo
obstacle.
sudo umount
. Comme le souligne enzotib, cette fonctionnalité est rompue avecmount
et la dernière fois que j'ai vérifié, elle était également cassée sur Arch./etc/fstab
qui commence par / media./etc/fstab
. Pouvez-vous vérifier cela s'il vous plaît?Non, il ne semble pas dans fstab. La complétion de Bash recherche les commandes dans path, les alias dans bashrc et / ou bash_profile et les chemins. Donc, si vous tapez quelque chose comme
sudo mount /mnt/some_folder
ça, il devrait se compléter automatiquement. Peut-être que lorsque vous l'avez fait,umount
vous étiez dans un chemin relatif pour votre destination et il a effectué une auto-complétion.la source
sudo mount /mnt/some_folder
, 100% sûr. AFAIK ça ne marche pas non plus sur Arch Linux. Quand je l'umount
ai fait, je n'étais pas sur le chemin relatif de la destination.Je suppose que bash ne veut pas être trop complexe et rester portable, donc ils ne chercheront pas dans / dev pour proposer l'achèvement d'une opération de montage.
Cependant, lors de l'appel à umount, il peut facilement regarder la sortie de df / mount / etc pour savoir quels périphériques sont montés et où.
Peut-être que zsh fournira l'achèvement du montage, zeck zsh même la saisie semi-automatique lors de l'exécution d'une commande scp ...
la source
/bin/bash
/home/ali
comme prévu.