cp数百个文件到不同的目录

时间:2017-07-06 19:41:16

标签: bash sorting sh cp

标题不是最好的,我道歉,我对脚本很新。

我尝试从每个目录复制2个文件,并将这些化合物放在一个只共享目录名称的单独目录中。

为了清楚起见;

/path/to/directory/all/variable_directories/

在这个目录里面会有多个文件,我需要2个文件,这些文件在每个变量目录中都有相同的名称。

我正在尝试从每个单独的变量目录中复制这两个文件,并根据/ variable_directory /

的基本名称将它们放在变量目录中

复制目的地将是;

/path/to/magical/shit/subset/set_with_variable_name/variable_directories/

每个/ set_with_variable_name /

中只有一些目标目录

脚本需要能够遍历每个/ set_with_variable_name /,直到它找到共享这些文件最初为cp' d的目录的基本名称的目录

大约有100个目录 来自和来自大约200个文件的cp需要被适当地复制和排序。

我可以使用;

将所有文件cp发送到SAME目录
#! /usr/bin/env bash
for i in */;
do cd $i;
cp filename /path/to/destination/;
cp other_filename /path/to/destination/;
cd ..;
done;

将文件排序到我完全丢失的正确目的地。

我感谢任何帮助,我是这类脚本的新手

1 个答案:

答案 0 :(得分:0)

看起来你需要这样的东西。

# looping through all the variable directories
for var_dir in <path1>/all/*; do

    # creating the destination directory if not exists
    mkdir -p "<path2>/set_with_variable_name/$(basename ${var_dir})"

    # copying the first file
    cp "${var_dir}/filename1" "<path2>/set_with_variable_name/$(basename ${var_dir})/filename1"

    # and the second
    cp "${var_dir}/filename2" "<path2>/set_with_variable_name/$(basename ${var_dir})/filename2"
done