設定ファイルエイリアスからランダムな文字列を生成する方法は?

設定ファイルエイリアスからランダムな文字列を生成する方法は?

/etc/profile私のサーバーには、次のコマンドに基づいてランダムなディレクトリを作成するエイリアスがあります。

alias rdir="mkdir -p ./`cat /dev/random | tr -cd 'a-z0-9' | head -c 8`/"

しかし、これは常に同じ文字列(この場合はディレクトリ)を生成することがわかりました。私はこれがsource設定ファイルに関連しているようですsource /etc/profile

rdir次の例のように、エイリアスを呼び出すときに常に変更されるエイリアスからランダムな文字列を生成する方法を知りたいと思います。 (再びではないsource?)

ベストアンサー1

二重引用符の代わりに一重引用符を使用してください。

alias rdir='mkdir -p ./$(cat /dev/urandom | tr -cd 'a-z0-9' | head -c 8)/'

エイリアスが呼び出されるたびに、ステートメントが評価されます。エイリアスを定義すると、ステートメントは二重引用符を使用して評価されるため、静的です。

現在の作業ディレクトリに任意のディレクトリを作成するより簡単な解決策は、次のものを使用することですmktemp

alias rdir='mktemp -d --tmpdir=./'

おすすめ記事