mkdir: não é possível criar o diretório: Nenhum arquivo ou diretório [duplicado]

7

O que há de errado com os comandos abaixo?

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

No entanto

$ mkdir ~/Music/240118

funciona.

Nunca pensei em fazer essas perguntas depois de anos usando o bash ...

    
por ka3ak 24.01.2018 / 21:26

1 resposta

13

A expansão til não funciona depois que a variável é expandida, portanto, se você colocar um til literal em var , ele será um til literal para mkdir . (Observe como a mensagem de erro de mkdir tem um til literal, não o caminho real do seu diretório pessoal.)

E, como você coloca o til entre aspas na tarefa, ele também não se expande. Se não estiver entre aspas, faz:

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

Claro, você pode usar apenas $HOME :

$ var="$HOME/Music"; echo $var
/home/me/Music
    
por 24.01.2018 / 21:42

Tags