変数を引用せずに `bashrc`にディレクトリをエクスポートする

変数を引用せずに `bashrc`にディレクトリをエクスポートする

現在私のIからbashrc変数をエクスポートしています。export dl="path/to/Downloads"パスにスペースが含まれているため、ディレクトリからエントリを取得するたびmvに変数を引用する必要があります(dlたとえば、コマンドラインで変数を引用せずにmv "$dl"/*.py somewhere/else変数を定義する方法はありますか?)。dlするmv $dl/*.py somewhere/else

ここで同様の質問をしましたが、この特定の問題に対する解決策が見つかりませんでした。重複した投稿でもご了承ください。

答え1

いいえ、できません。他のシェル言語を使用したり、スペースなしでディレクトリへのシンボリックリンクを作成したり、いくつかのエイリアシングトリックを使用したりできます。

私は個人的に後者をすぐに忘れてしまうので、そうしません;-)

しかし、とにかく例は次のとおりです。

# usage: q cmd ...
# just like cmd ..., only without IFS splitting
alias q='_q=$(fc -nl -0); IFS= eval "${_q#*q}" #'

$ src='foo bar' dst='baz quux'
$ q mkdir -p $src/dir $dst
$ q mv $src/dir $dst
$ q ls $dst
dir

答え2

まったく問題はありませんが、問題がダウンロードフォルダからファイルを移動する一般的な作業であることが明らかな場合は、特定のエイリアスを使用できます。

alias dl-mv='mv "$dl"/'

もちろん、ダウンロードフォルダの名前を変更したり場所を変更したりすることもできます(パスにスペースを入れずにシンボリックリンクを使用することもできます)。

関連情報