J'écris un .sh pour faire un peu de travail pour moi, mais je suis maintenant au point où je dois cd dans le répertoire où se trouve le fichier /path/to/file.end. Terminal ne permet pas
cd /path/to/file.end
bash: cd: /path/to/file.end: Not a directory
il n'y a malheureusement pas de solution de contournement que je connaisse, donc ce serait bien si vous pouviez aider!
command-line
bash
files
directory
Azsgy
la source
la source
cd /path/to
? Cela changera le répertoire dans le répertoire dans lequel se trouve le fichierfile.end
.Réponses:
Tapez
cd $( dirname /path/to/file.end)
. Cela vous emmènera/path/to
.Explication:
dirname
retourne le chemin complet d'un fichier (sans le nom de fichier, que vous obtiendriez avecbasename
) - c. -à-dirname /etc/apt/apt.conf.d/99update-notifier
retours/etc/apt/apt.conf.d
$(anything)
est remplacée par le résultat de la commande entre parenthèses.cd $( dirname /etc/apt/apt.conf.d/99update-notifier)
Est donc exécuté commecd /etc/apt/apt.conf.d
Une autre notation (mais ancienne et découragée) pour la même chose était
la source
Vous ne pouvez pas
cd
dans un fichier. Voici une (ligne de commande) fonction qui sera automatiquementcd
dans un chemin pour un chemin de fichier complet donné:la source
pwd
, et si vous définissez une fonction sur une seule ligne, besoin d'un point-virgule aprèspwd
.echo $?
- quel est le statut de sortie?Si vous ajoutez "/ .." au nom de fichier qui vous amènera au bon répertoire, par exemple
cd /path/to/file.end/..
. Cela fonctionne de toute façon sur Cygwin.la source
touch test && cd /home/test/test/..
ditbash: cd: /home/test/test/..: No such file or directory