구성 파일 별칭에서 임의의 문자열을 생성하는 방법은 무엇입니까?

구성 파일 별칭에서 임의의 문자열을 생성하는 방법은 무엇입니까?

/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=./'

답변2

대신 ing 및 필터링을 사용할 수도 있습니다 pwgen.cat/dev/random

alias mkranddir='mkdir $(pwgen -s 8 1)'

관련 정보