ユーザー入力を受け取り、ユーザーが指定したフォルダー(以前に存在しなかったフォルダー)に特定のファイルを移動しようとしています。これについてスクリプトを書いたが、うまくいきません。
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"