GNU/Linux >> Znalost Linux >  >> Linux

Mkdir:Nelze vytvořit adresář:Žádný takový soubor nebo adresář?

Tato otázka zde již obsahuje odpovědi :Proč se vlnovka (~) nerozšíří uvnitř dvojitých uvozovek?

(4 odpovědi)
Uzavřeno před 3 lety.

Co je špatného na níže uvedených příkazech?

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

Nicméně

$ mkdir ~/Music/240118

funguje.

Nikdy jsem si nemyslel, že po letech používání bash budu klást takové otázky…

Přijatá odpověď:

Rozbalení vlnovky po rozbalení proměnné nefunguje, takže pokud do var vložíte doslovnou vlnovku , skončí to jako doslovná vlnovka k mkdir . (Všimněte si, jak chybová zpráva z mkdir má v sobě doslovnou vlnovku, nikoli skutečnou cestu vašeho domovského adresáře.)

A protože tildu vložíte do uvozovek v úkolu, nerozšíří se ani tam. Pokud není v uvozovkách, ano:

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

Samozřejmě můžete vždy použít pouze $HOME místo toho:

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

Linux
  1. 5 příkladů pro vytvoření více adresářů v Linuxu

  2. Jak vytvořit nový adresář v Linuxu

  3. Chyba Linuxu při načítání sdílených knihoven:nelze otevřít soubor sdíleného objektu:Žádný takový soubor nebo adresář

  1. Vytvořte soubor zip a ignorujte strukturu adresářů

  2. mkdir -p selže, když adresář existuje

  3. Závažná chyba:cuda.h:Žádný takový soubor nebo adresář

  1. conda source deactivate :bash:deactivate:Žádný takový soubor nebo adresář

  2. ImportError:libcblas.so.3:nelze otevřít soubor sdíleného objektu:Žádný takový soubor nebo adresář

  3. Vytvořte adresář v vifm