![명령으로 생성된 파일을 디렉토리에 mv하는 방법](https://linux55.com/image/151604/%EB%AA%85%EB%A0%B9%EC%9C%BC%EB%A1%9C%20%EC%83%9D%EC%84%B1%EB%90%9C%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EC%97%90%20mv%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
매개변수를 사용하여 이름이 지정된 디렉터리로 파일을 이동해야 합니다.
지금까지 파일을 디렉토리로 이동하는 방법에 대해 작업해 왔습니다.
mkdir "$3"
cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 255 > $(shuf -n 1 /usr/share/dict/french)
지금까지는 작동하지만 이제 이 파일을 사용자가 매개변수에 지정한 디렉터리로 이동해야 합니다 $3
. find
몇 초 전에 생성된 파일을 선택하기 위해 명령을 사용해 보았지만 n
다른 파일도 선택할 수 있기 때문에 실제로는 그리 효율적이지 않습니다.
답변1
from이라는 디렉터리를 만들고 있지만 $3
현재 디렉터리에 파일을 만들고 있습니다.
새 디렉터리에 파일을 만들려면 해당 디렉터리의 이름으로 리디렉션하면 됩니다.
mkdir "$3"
tr -dc 'A-Za-z0-9' </dev/urandom | head -c 255 >"$3/$(shuf -n 1 /usr/share/dict/french)"
또는 가독성을 위해 콘텐츠를 분리하세요.
dir=$3
mkdir -p -- "$dir" || exit 1
fname=$(shuf -n 1 /usr/share/dict/french)
tr -dc 'A-Za-z0-9' </dev/urandom | head -c 255 >"$dir/$fname"
여기서는 $3
존재하지 않는 하위 디렉터리 경로가 포함된 경우 전체 경로가 생성되도록 했습니다( ; -p
에 대한 호출을 추가하여mkdir
mkdir
아니요경로가 이미 있으면 실패합니다.) 나는 또한 경로 앞에 다음을 붙였습니다.--
혹시라도의 첫 번째 문자 $3
는 a입니다 . 그렇지 않으면 명령줄 옵션의 끝을 나타내는 -
혼란스러울 수 있습니다 mkdir
. --
호출이 실패하면 0이 아닌 종료 상태로 종료됩니다 mkdir
.