移动文件夹中的文件

移动文件夹中的文件

我正在接受用户输入并尝试移动用户指定的文件夹中的特定文件(该文件夹事先不存在)。我为此编写了一个脚本,但它不起作用。

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"

相关内容