Saya menulis .sh untuk melakukan beberapa pekerjaan untuk saya, tapi saya sekarang pada titik di mana saya harus cd ke direktori file /path/to/file.end ada di. Terminal tidak memungkinkan
cd /path/to/file.end
bash: cd: /path/to/file.end: Not a directory
sayangnya tidak ada solusi yang saya tahu, jadi alangkah baiknya jika Anda bisa membantu!
command-line
bash
files
directory
Azsgy
sumber
sumber
cd /path/to
? Itu akan mengubah direktori menjadi direktori tempat filefile.end
itu berada.Jawaban:
Jenis
cd $( dirname /path/to/file.end)
. Itu akan membawa Anda ke/path/to
.Penjelasan:
dirname
mengembalikan path lengkap untuk file (tanpa nama file, yang akan Anda dapatkanbasename
) - yaitudirname /etc/apt/apt.conf.d/99update-notifier
mengembalikan/etc/apt/apt.conf.d
$(anything)
digantikan oleh hasil dari perintah di dalam tanda kurung. Begitucd $( dirname /etc/apt/apt.conf.d/99update-notifier)
dieksekusi sebagaicd /etc/apt/apt.conf.d
Notasi lain (tapi tua dan berkecil hati) untuk hal yang sama adalah
sumber
Anda tidak dapat
cd
membuka file. Berikut ini adalah (command line) fungsi yang secara otomatis akancd
menjadi jalan untuk path file yang diberikan memenuhi syarat:sumber
pwd
, dan jika Anda mendefinisikan fungsi dalam satu baris, perlu titik koma setelahnyapwd
.echo $?
- apa status keluar?Jika Anda menambahkan "/ .." ke nama file yang akan membawa Anda ke direktori yang benar misalnya
cd /path/to/file.end/..
. Lagipula itu bekerja pada Cygwin.sumber
touch test && cd /home/test/test/..
mengatakanbash: cd: /home/test/test/..: No such file or directory