Shell脚本:N次复制文件和文件夹

时间:2018-11-23 09:22:03

标签: bash

我有两个文件:

  1. .json
  2. 具有随机内容的文件夹

其中<transaction>id+sequancialid1id2 ... idn

我想将此结构(.json +文件夹)填充为n。我的意思是:

我想拥有id1.jsonid1文件夹,还有id2.jsonid2文件夹... idn.jsonidn文件夹

反正有(shell脚本)填充此内容吗?

那会是这样的:

for (i=0,i<n,i++) {
    copy "id" file to "id+i" file
    copy "id" folder to "id+i" folder
}

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您的shell语法已关闭,但此后应该很简单。

#!/bin/bash
for((i=0;i<$1;i++)); do
  cp "id".json "id$i".json
  cp -r "id" "id$i"
done

这期望 n 的值作为脚本的唯一参数(在$1的脚本内部可见)。

C风格的for((...))循环仅适用于Bash,不适用于sh

正确的生产脚本还会检查它是否以预期的格式(单个正数)接收到预期的参数,但是当您了解更多信息时,您可能希望解决此类复杂问题。

答案 1 :(得分:0)

此外,这是与sh一起使用的版本:

#!/bin/sh

test -e id.json || { (>&2 echo "id.json not found") ; exit 1 ; }

{
    seq 1 "$1" 2> /dev/null ||
    (>&2 echo "usage: $0 transaction-count") && exit 1
} |
    while read i
    do
        cp "id".json "id$i".json
        cp -r "id" "id$i"
    done