/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)'