폴더에서 파일 이동

폴더에서 파일 이동

사용자 입력을 받아 사용자가 지정한 폴더(이전에 존재하지 않는 폴더)로 특정 파일을 이동하려고 합니다. 이에 대한 스크립트를 작성했지만 작동하지 않습니다.

read month
mv file210.txt /Users/PrashastKumar/Documents/latestFiles/$month/

이 작업을 수행한 후 다음과 같은 오류가 발생합니다.

mv: rename file210.txt to /Users/PrashastKumar/Documents/latestFiles/Dec/: No such file or directory

답변1

폴더가 존재하지 않으므로 생성해야 합니다.

#!/bin/sh

read month

folder="/Users/PrashastKumar/Documents/latestFiles/$month"

mkdir -p "$folder"

mv file210.txt "$folder"

스크립트는 폴더를 생성하고 mkdir -p이미 존재하는 경우 실패 없이 사용하며 필요에 따라 중간 폴더를 생성합니다.

그런 다음 파일이 이동됩니다.


새 폴더를 만들기 전에 확인을 통해 스크립트를 확장합니다.

#!/bin/sh

read month

folder="/Users/PrashastKumar/Documents/latestFiles/$month"

if [ ! -d "$folder" ]; then
    printf 'Folder "%s" does not exist. Create it [y/n]: ' "$folder" >&2
    read
    case "$REPLY" in 
        [yY]*)  mkdir -p "$folder" ;;
        *) exit 1
    esac
fi

mv file210.txt "$folder"

관련 정보