0 votes

Y a-t-il un moyen de changer le répertoire de travail de bash, afin de ne pas encombrer mon dossier Home ?

Accordé qu'ils sont généralement des fichiers invisibles, mais c'est comme si chaque application voulait stocker un million de fichiers de configuration dans mon répertoire personnel. J'aime garder mon répertoire personnel propre et ordonné. Idéalement, j'aimerais créer un dossier appelé bash et y stocker tous les fichiers bash, shell, etc. Comme chaque application laisse une traînée de fichiers d'une seule ligne dans mon joli répertoire personnel.

Voici mon répertoire de travail :

Où je voudrais que ça ressemble à ça avec un petit dossier propre pour le shell faire ce qu'il veut.

Quoi qu'il en soit... désolé si je semble grognon mais je viens de recevoir un nouveau MacBook et j'ai littéralement dû passer 40 minutes à jouer à la bataille navale dans mon répertoire personnel avec tous les fichiers que les applications de terminal ont laissés partout.

Je suis en fait surpris qu'Apple permette cela. Elle laisse simplement le shell déverser toutes ses saletés sur le joli et propre répertoire personnel. J'aimerais qu'Apple rende nécessaire un mot de passe même pour créer un répertoire là-bas.

7voto

Douglas Points 10417

Y a-t-il un moyen de changer le répertoire où bash travaille ?.....

C'est une confusion sur ce qu'est Bash. Bash est un interpréteur de commandes Unix qui est une interface en ligne de commande vers le système d'exploitation.

Il ne "travaille pas" à partir de votre dossier Home. Lorsque vous démarrez un shell interactif non-login, il vous place dans votre dossier HOME par commodité.

Pour simplifier, Bash est simplement un "portail" (fenêtre du Terminal) vers le système d'exploitation; rien de plus.

...pour éviter de saturer mon dossier Home ?

Votre dossier HOME est saturé parce que tout ce que vous installez utilise l'emplacement par défaut $HOME pour ses fichiers de support.

En regardant un échantillon des fichiers/dossiers, des choses comme JUNK, Nouveau dossier avec éléments, doc, core, layers, news, etc. sont soit des fichiers créés par des applications provenant d'ailleurs que l'App Store, soit créés par l'utilisateur.

...mais c'est comme si chaque application voulait stocker un million de fichiers de configuration dans mon répertoire personnel.

Les applications stockent généralement leurs fichiers dans ~/Library ou plus précisément dans ~/Library/Application Support (c'est le répertoire Library dans le répertoire HOME de l'utilisateur individuel). Il y a des exceptions...iCloud, et Adobe Creative Cloud stockent des fichiers dans le répertoire HOME. Personnellement, je mets mes machines virtuelles VirtualBox dans mon dossier HOME au lieu de mon dossier ~/Documents.

Je suis en fait surpris qu'Apple permette cela.

Heureusement qu'ils le permettent ! Je n'accueillerais pas favorablement un système d'exploitation qui m'empêcherait de modifier MON répertoire personnel comme je le souhaite.

Cela dit, il est important de noter que ce n'est pas une "chose d'Apple". C'est une caractéristique de BSD et plus généralement de Unix. Votre répertoire HOME est une variable prédéfinie dans le système d'exploitation et de nombreuses applications et scripts utilisent ce répertoire pour stocker leurs fichiers.

Comme mentionné précédemment, les applications de l'App Store (celles avec la supervision d'Apple) respectent un emplacement standard pour leurs fichiers de support. Les choses que vous téléchargez depuis Github...eh bien, vous êtes à leur merci.

...Où je veux qu'il ressemble à ceci avec un joli petit dossier pour que le shell fasse ce qu'il veut.

Vous pourriez le faire, mais gardez à l'esprit que l'application que vous avez installée recherchera ses fichiers de support dans le répertoire défini par la variable d'environnement HOME. Déplacez ces fichiers ailleurs et vous pourriez casser l'application.

Pour que cela fonctionne, vous devriez informer l'application (en la modifiant) que ses fichiers sont situés dans $HOME/bash.

TL;DR

Vous attendez que HOME soit un endroit vierge qui ne soit pas touché; c'est une attente mal conçue. Utilisez le répertoire HOME pour ce qu'il est prévu - un répertoire de support utilisateur - et concentrez-vous sur maintenir ~/Documents, ~/Downloads, ~/Music, propres et nets.

0voto

Michael Zhou Points 167

La réponse courte à votre question est que vous ne pouvez pas et la réponse longue est en quelque sorte. Mettons en place quelques bases. Lorsque vous vous connectez à votre ordinateur, l'application loginwindow.app configure un environnement de base en définissant les variables HOME, PATH, TMPDIR, LOGNAME et USER.

L'application Terminal.app est un émulateur de terminal, en d'autres termes un logiciel qui émule un terminal physique. Les variables d'environnement définies par l'application loginwindow.app sont disponibles pour l'application Terminal.app. L'application Terminal.app appelle ensuite login qui vérifie que les variables HOME, PATH, LOGNAME et USER sont définies. Ensuite, le shell est lancé en tant que shell de connexion en lisant les fichiers de démarrage appropriés. Jusqu'à ce point, HOME est statique, défini par l'application loginwindow.app, mais dans une session de terminal, la valeur de HOME peut être modifiée.

Maintenant, copiez votre fichier de configuration de shell .bash_profile et .bashrc (ou tout autre fichier de configuration de shell que vous avez) vers /Users/chrisvaccaro/bash. Ensuite, exécutez la commande suivante :

HOME=/Users/chrisvaccaro/bash; export HOME; exec bash -l

À partir de ce moment, l'historique de bash sera écrit à l'intérieur de /Users/chrisvaccaro/bash ainsi que tout fichier "point" typique de "unix". La session de terminal initiale laissera toujours un peu de "désordre" dans le répertoire HOME d'origine.

C'est beaucoup trop compliqué et susceptible de se casser.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X