cp 数百个文件到不同的目录
cp hundreds of files to different directories
标题可能不是最好的,我很抱歉,我是脚本编写的新手。
我试图从每个目录复制 2 个文件,并将这些化合物放在一个单独的目录中,该目录仅共享目录名称。
为清楚起见;
/path/to/directory/all/variable_directories/
这个目录里面会有多个文件,我需要 2 个文件,它们在每个单独的变量目录中都具有相同的名称。
我正在尝试从每个单独的变量目录中复制这 2 个文件,并根据 /variable_directory/
的基本名称将它们放入变量目录中
复制目标将是;
/path/to/magical/shit/subset/set_with_variable_name/variable_directories/
只有一些目标目录位于每个 /set_with_variable_name/
脚本将需要能够遍历每个 /set_with_variable_name/,直到找到共享这些文件最初从
中复制的目录的基本名称的目录
大约有 100 个目录
to cp from and to and about 200 files totally 需要适当地复制和排序。
我可以使用它来将所有文件复制到同一目录;
#! /usr/bin/env bash
for i in */;
do cd $i;
cp filename /path/to/destination/;
cp other_filename /path/to/destination/;
cd ..;
done;
将文件分类到正确的目的地是我完全迷失的地方。
感谢任何帮助,我是此类脚本的新手
看来你需要这样的东西。
# 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
标题可能不是最好的,我很抱歉,我是脚本编写的新手。
我试图从每个目录复制 2 个文件,并将这些化合物放在一个单独的目录中,该目录仅共享目录名称。
为清楚起见;
/path/to/directory/all/variable_directories/
这个目录里面会有多个文件,我需要 2 个文件,它们在每个单独的变量目录中都具有相同的名称。
我正在尝试从每个单独的变量目录中复制这 2 个文件,并根据 /variable_directory/
的基本名称将它们放入变量目录中复制目标将是;
/path/to/magical/shit/subset/set_with_variable_name/variable_directories/
只有一些目标目录位于每个 /set_with_variable_name/
脚本将需要能够遍历每个 /set_with_variable_name/,直到找到共享这些文件最初从
中复制的目录的基本名称的目录大约有 100 个目录 to cp from and to and about 200 files totally 需要适当地复制和排序。
我可以使用它来将所有文件复制到同一目录;
#! /usr/bin/env bash
for i in */;
do cd $i;
cp filename /path/to/destination/;
cp other_filename /path/to/destination/;
cd ..;
done;
将文件分类到正确的目的地是我完全迷失的地方。
感谢任何帮助,我是此类脚本的新手
看来你需要这样的东西。
# 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