GNU/Linux >> Belajar Linux >  >> Linux

Mkdir:Tidak Dapat Membuat Direktori:Tidak Ada File Atau Direktori Tersebut?

Pertanyaan ini sudah memiliki jawaban di sini :Mengapa tilde (~) tidak mengembang di dalam tanda kutip ganda?

(4 jawaban)
Tutup 3 tahun yang lalu.

Apa yang salah dengan perintah di bawah ini?

$ var1="~/Music/$(date +%d%m%y)"
$ echo "$var1"
~/Music/240118
$ mkdir "$var1"
mkdir: cannot create directory ‘~/Music/240118’: No such file or directory

Namun

$ mkdir ~/Music/240118

bekerja.

Tidak pernah terpikir saya akan mengajukan pertanyaan seperti itu setelah bertahun-tahun menggunakan bash…

Jawaban yang Diterima:

Perluasan tilde tidak berfungsi setelah variabel diperluas, jadi jika Anda memasukkan tilde literal di var , itu akan berakhir sebagai tilde literal ke mkdir . (Perhatikan bagaimana pesan kesalahan dari mkdir memiliki tilde literal di dalamnya, bukan jalur sebenarnya dari direktori home Anda.)

Dan, karena Anda menempatkan tilde dalam tanda kutip dalam tugas, itu juga tidak meluas di sana. Jika tidak ada dalam tanda kutip, ya:

$ var="~/Music"; echo $var
~/Music
$ var=~/"Music"; echo $var
/home/me/Music

Tentu saja, Anda selalu dapat menggunakan $HOME sebagai gantinya:

$ var="$HOME/Music"; echo $var
/home/me/Music

Linux
  1. Bash:Tidak ada file atau direktori seperti itu?

  2. sys/types.h:Tidak ada file atau direktori tersebut

  3. libpulse.so.0:tidak dapat membuka file objek bersama:Tidak ada file atau direktori tersebut

  1. cp:tidak dapat membuat direktori :Tidak ada file atau direktori tersebut

  2. ImportError:libtk8.6.so:tidak dapat membuka file objek bersama:Tidak ada file atau direktori tersebut

  3. Buat direktori di vifm

  1. Cara Membuat Direktori Baru di Linux

  2. Kesalahan Linux saat memuat pustaka bersama:tidak dapat membuka file objek bersama:Tidak ada file atau direktori tersebut

  3. touch:tidak dapat menyentuh `foo':Tidak ada file atau direktori seperti itu