如何使用bash复制和重命名文件夹?

时间:2015-07-23 16:24:05

标签: bash

我有很多名字相似的文件夹

counter=0; for value in "sim*/test.dat"; do cp "$value" "analysis/${value%.dat}_$counter.dat ; ((counter++)); done

等等。我有一个文件要从所有名为test.dat的文件中复制并将它们复制到名为analyze的新文件夹中,并为它们指定一个新名称,例如test_0.dat,test_1.dat等。

这是我到目前为止所尝试的内容。

class Task < ActiveRecord::Base
  has_many :tsk1s
  has_many :tsk2s, through: tsk1s
  has_many :tsk3s, through: tsk2s
  has_many :projetos
  belongs_to :projeto

  accepts_nested_attributes_for :tsk1s, allow_destroy: true
end

然而,这不起作用。有人能告诉我一个不同的解决方案吗?

1 个答案:

答案 0 :(得分:2)

规则“引用你的变量”并不是说你也应该引用通配符。用双引号括起星号可防止其扩展。

您还需要从文件名中删除路径:

#! /bin/bash
counter=0
for file in sim*/test.dat; do
    cp "$file" analysis/test_"$counter".dat
    ((counter++))
done