명령으로 생성된 파일을 디렉토리에 mv하는 방법

명령으로 생성된 파일을 디렉토리에 mv하는 방법

매개변수를 사용하여 이름이 지정된 디렉터리로 파일을 이동해야 합니다.

지금까지 파일을 디렉토리로 이동하는 방법에 대해 작업해 왔습니다.

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에 대한 호출을 추가하여mkdirmkdir 아니요경로가 이미 있으면 실패합니다.) 나는 또한 경로 앞에 다음을 붙였습니다.-- 혹시라도의 첫 번째 문자 $3는 a입니다 . 그렇지 않으면 명령줄 옵션의 끝을 나타내는 -혼란스러울 수 있습니다 mkdir. --호출이 실패하면 0이 아닌 종료 상태로 종료됩니다 mkdir.

관련 정보