如何将所有文件夹复制到同一目录中?

Kon*_*ong 3 16.04

如果我有数千个名为a/ b/ c/etc的文件夹,如何多次复制它们及其内容,以便复制的文件夹具有不同的名称,例如a-copy1/ b-copy1/ c-copy1/ ... a-copy12/ b-copy12/ c-copy12/

Geo*_*sen 6

这个脚本应该使这成为可能:

#! /usr/bin/env bash
set -e

for i in /path/to/folder
do
        if [ -d "$i" ]
        then
                for r in $(seq 1 5)
                do
                        cp -r "$i" "$i"\-copy"$r"
                done
        fi
done
Run Code Online (Sandbox Code Playgroud)

信息:

  • for r in $(seq 1 5):这允许您选择要创建的副本数量。
  • if [ -d "$i" ]: 检查目标是否是文件夹。
  • cp -r "$i" "$i"\-copy"$r": 执行复制。
  • set -e: 在第一个错误时停止。

样本数据:

a b c d e f
Run Code Online (Sandbox Code Playgroud)

示例输出:

a        a-copy3  b        b-copy3  c        c-copy3  d        d-copy3  e-copy2  e-copy5  f-copy2  f-copy5
a-copy1  a-copy4  b-copy1  b-copy4  c-copy1  c-copy4  d-copy1  d-copy4  e         e-copy3  f        f-copy3
a-copy2  a-copy5  b-copy2  b-copy5  c-copy2  c-copy5  d-copy2  d-copy5  e-copy1   e-copy4  f-copy1  f-copy4
Run Code Online (Sandbox Code Playgroud)