Je viens d’installer MSYS2, et pour qu’il utilise mon dossier d’utilisateur Windows en tant que $ HOME, je mets ceci dans /etc/bash.bashrc:
HOME=$USERPROFILE
Et cela fonctionne bien quand je lance juste le cd, sauf que l'invite ne montre plus ~ comme étant le chemin actuel quand je suis là. Un autre problème est que
cd ~
m'emmène à mon répertoire personnel, mais appuyer sur tab après ~ ne le complète pas avec le contenu de mon répertoire personnel; Maintenant, je reçois une liste des utilisateurs de mon ordinateur précédés du préfixe ~, et essayer d’accéder à l’un de ceux-ci le fait essayer de se connecter à / home / (nom d’utilisateur).
Comment puis-je jouer ~ avec un répertoire personnel qui ne réside pas dans / home?
ps: Réputation trop basse, je ne pouvais pas la taguer msys2
~/
et puis Tab? (Il ne devrait pas développer avec le contenu de votre répertoire personnel si vous tapez~
et puis Tab; on dirait que c'est ce qu'il faut faire.)~/ta
puis Tab, où vous avez un fichier dans votre répertoire personnel dont le nom commence parta
?Réponses:
La bonne façon de faire est de mettre cela dans /etc/nsswitch.conf:
Voir ici pour les docs.
Aussi, pour rendre ma sortie homedir plus lisible, je mets ceci dans ~ / .bashrc:
la source
modifier
/etc/fstab
à monterC:\Users
comme/home
et le tour est joué! Par exemple, ajoutez ce qui suit à la fin defstab
:la source
binary
c'est bien,auto
est ignoré, donc peut être omis. Quel est l'avantage denoacl
plus deacl
? Il semble que cygwin est capable de construire des autorisations POSIX à partir de celles de NTFS. Est-ce juste pour rester en ligne avec les défautscygdrive
réglages?acl
n'est pas bon. Je suppose que c'est assez bon pour utiliserbinary,noacl
.acl
est mauvais si vous avez mélangé des fichiers et des répertoires avec cygwin (ou msys) / windows. Msys par défaut monte des lecteursnoacl
, cygwinacl
C’est probablement parce que l’équipe de cygwin a supposé, à tort, que les utilisateurs restaient dans l’environnement cygwin tout le temps et n’utilisaient pas les outils Windows dans les mêmes répertoires que ceux utilisés pour cygwin. cygwin manipule les listes de contrôle d'accès de manière non standard afin d'émuler les autorisations POSIX sur les fichiers (il n'y a pas de relation 1: 1 avec les attributs de fichier NTFS). En bout de ligne, pour un montage typique à usage mixtenoacl
.$ USERPROFILE pointe vers le dossier personnel de l'utilisateur dans les fenêtres format, mais MSYS s’attend évidemment à une UNIX chemin de style. J'avais lu la suggestion dans un autre billet, peut-être ici, et c'est pourquoi je l'ai essayée.
Pour une raison quelconque, cd: ing dans un chemin Windows dans MSH bash vous amènera à l'emplacement de montage correct de ce dossier, mais vous ne serez plus dans le chemin spécifié par $ HOME , je crois que c’est la raison pour laquelle la suggestion fonctionne, mais ne remplace toujours pas le chemin par ~ dans l’invite.
Après que cette situation me soit apparue (en partie grâce à Astara), je suis parvenu à ceci:
dans /etc/bash.bashrc, ou dans n'importe quel fichier bashrc, si vous n'utilisez pas MSYS2
Bien entendu, cela nécessite que votre dossier d’utilisateurs soit C: \ Users, comme c’est le cas sous Windows 7 et 8 au moins.
la source
$USERPROFILE
travail. Essaye ça:HOME=$(cd "$USERPROFILE" && pwd)
.