bash选择性复制文件夹和内容到另一个位置

时间:2014-08-13 21:36:33

标签: bash file copy find

我正在寻找一个bash scrypt将一些文件夹和一些内容复制到另一个位置。我是老师,非常喜欢编程语言无论如何我正在寻找,我有这个导演结构

主要导演“学生”与子文件夹“john”;“雏菊”;“工作”等..和一些文件夹包含一个特定的文件,例如“exam.dat”,我需要一个scrypt,将检查每个文件夹在学生的“exam.dat”文件中,将该文件夹和此文件复制到另一个位置,而不复制其他文件在不包含exam.dat的文件夹或文件夹中。

希望我足够明确。提前谢谢

1 个答案:

答案 0 :(得分:1)

#!/bin/bash

set -e

if [[ $# -ne 1 ]]; then
    echo "usage: cpexams directory"
    exit 1
fi

DESTINATION=$1

if [[ ! -d "${DESTINATION}" ]]; then
    echo "directory ${DESTINATION} does not exist!"
    exit 2
fi

for dir in *; do
    if [[ -d "${dir}" ]] && [[ -a "${dir}/exam.dat" ]]; then
        mkdir "${DESTINATION}/${dir}"
        cp "${dir}/exam.dat" "${DESTINATION}/${dir}/"
    fi
done

如果要在相同目标目录上重复使用该脚本(意味着更新目标目录),请将mkdir更改为mkdir -p