Sto scrivendo un file .sh per fare un po ‘di lavoro per me, ma ora sono al punto in cui devo inserire nella directory il file /path/to/file.end. Il terminale non consente
cd /path/to/file.end bash: cd: /path/to/file.end: Not a directory
purtroppo non c’è soluzione che io conosca, quindi sarebbe bello se potessi aiutare!
Digita cd $( dirname /path/to/file.end)
. Questo ti porterà in /path/to
.
Spiegazione:
dirname
restituisce il percorso completo per un file (senza il nomefile, che si otterrebbe con basename
) – ad es. dirname /etc/apt/apt.conf.d/99update-notifier
restituisce /etc/apt/apt.conf.d
$(anything)
viene sostituita dal risultato del comando tra parentesi. Quindi cd $( dirname /etc/apt/apt.conf.d/99update-notifier)
viene eseguito come cd /etc/apt/apt.conf.d
Un’altra (ma vecchia e scoraggiata) notazione per lo stesso era
cd `dirname /path/to/file.end`
Non è ansible eseguire l’operazione di cd
in un file. Ecco una funzione (riga di comando) che verrà automaticamente inserita in un percorso per un determinato percorso file completo:
function fcd () { [ -f "$1" ] && { cd "$(dirname "$1")"; } || { cd "$1"; } ; pwd; }
Se aggiungi “/ ..” al nome del file che ti porterà nella directory corretta es. cd /path/to/file.end/..
Funziona comunque su Cygwin.