在bash中将文件复制到命名目录中

时间:2016-08-04 20:04:21

标签: bash

我有一个像这样的目录结构 / dir01 / dir02 /文件

我想将dir02中的第一个文件复制到一个单独的驱动器上,并复制到一个与dir01同名的目录中

我写了以下脚本

while [ "${*}" != "" ] ; do

INPUT="${1}"
FOLDER="${INPUT}"/*DPX
TARGET_FOLDER="/Users/user/Desktop/folder"/$(basename "${INPUT}")

for file in "${FOLDER}"; do
    echo cp "$file" "${TARGET_FOLDER}"
    break 1
done
done

这里INPUT是dir01,FOLDER是dir02,TARGET_FOLDER是与dir02同名的新目录,我希望将文件复制到。

当我运行脚本时,它在INPUT路径中查找名为* DPX的文件夹,该文件夹不存在。 INPUT目录中有许多名为* DPX的文件夹,我希望它从所有文件夹中提取第一个文件。

1 个答案:

答案 0 :(得分:1)

尝试将for替换为:

for file in "$INPUT"/*DPX/*

注意:

  • 您的版本正在查找名为*DPX的文件,因为${FOLDER}行引用了for
  • for f in "$dir"将使用for执行f=$dir循环一次。要在$dir下查找文件,您需要另一个/*
  • 此外,您需要在shift之前done