mkdir: ディレクトリを作成できません: そのファイルまたはディレクトリがありません。

mkdir: ディレクトリを作成できません: そのファイルまたはディレクトリがありません。

次のコマンドの問題は何ですか?

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

しかし、

$ mkdir ~/Music/240118

働く

長年にわたってbashを使ってきたので、この質問をすることは夢にも知りませんでした。

ベストアンサー1

変数が展開された後はチルダ拡張が適用されないため、リテラルチルダを挿入するとvar最終的にリテラルチルダになりますmkdir。 (エラーメッセージにmkdirホームディレクトリの実際のパスではなくリテラルチルダが含まれていることに注意してください。)

そして、タスクの引用符の中にチルダを入れるので、そこでも拡張されません。引用符で囲まれていない場合は、次の操作を行います。

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

もちろん、いつでも次のものを使用できます$HOME

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

おすすめ記事