디렉터리 이동 및 생성

디렉터리 이동 및 생성

큰 고전이라는 건 알지만 내가 관심을 갖는 정확한 사례를 찾지 못했습니다.

다음과 같이 호출할 수 있는 + 명령이 필요합니다 mkdir.mv

mvdir /home/user/Documents/irs.pdf /mnt/work/45/223/insight/irs1970.pdf

일반 명령과 mv똑같이 작동하며 대신 경로를 생성합니다.no such file or directory

work/45/223/insight/존재하지 않으며 생성해야 한다고 생각하세요 .

내가 찾은 다른 모든 명령은 이와 같이 호출할 수 없으며, 더 많은 정보가 필요하고, 경로와 파일을 직접 구별해야 합니다.

시도:mkdir -p /mnt/work/45/223/insight && mv /home/user/Documents/irs.pdf /mnt/work/45/223/insight/irs1970.pdf

답변1

이 문제에 대한 귀하의 시도는 공정합니다. 처리 방법을 고려하는 방법은 다음과 같습니다.

#!/bin/sh
src=$1
dst=$2

if [ ! -d "$dst" ]
then
    dir=${dst%/*}                   # dir path
    [ "$dir" = "$dst" ] && dir=.    # but had no dir

    mkdir -p "$dir"                 # create path
fi
mv "$src" "$dst"                    # move file

이를 mvdir사용자 위치 중 하나 에 저장 $PATH하고 실행 가능하게 만듭니다.

이 스크립트는 여러 소스를 처리하도록 확장될 수 있지만 여기서는 그렇게 하지 않았습니다.

답변2

정답은 아니지만 여전히 해당 작업을 수행하는 항목을 찾을 수 없습니다.

그래서 해결 방법을 만드는 데 두 번이나 걸렸지만 누가 사용하도록 허용했는지 mv경로를 완전히 다시 만든 다음 파일을 옮겼습니다.

find /mnt -type d -print0 | while read -d $'\0' i; do mkdir -p /home/user/Documents$i; done
mv /home/user/Documents/irs.pdf /mnt/work/45/223/insight/irs1970.pdf

이상적이지는 않지만 괜찮습니다.

관련 정보