【问题标题】:I would like to copy paste a file and then rename it, how do i do it in my case?我想复制粘贴一个文件然后重命名它,我该怎么做?
【发布时间】:2018-01-02 13:29:30
【问题描述】:

我有许多有序编号的文件 (001~099),其中包含同一个名为“red”的文件。所有这些文件都在一个目录中。我想将所有“红色”文件复制到一个文件夹(全局)中,并且我移动的每个“红色”文件都想通过其父文件夹重命名,例如001, 002..等等..

我知道如何复制移动和重命名,但我不知道如何将它们放在一起

原来如此

cp ~/00*/red ~/global MV红001

我想把它变成一个循环,每次添加一个文件时都将 +1 添加到 001 但我失败了

有人可以帮忙吗?

【问题讨论】:

    标签: copy rename copy-paste file-rename


    【解决方案1】:
    for i in {1..99}
    do
      number=$(printf "%03d" $i)
    
      cp ~/$number/red ~/global/$number
    done
    

    在 bash >=bash-4 中也可以这样:

    for number in {001..099}
    do
      cp ~/$number/red ~/global/$number
    done
    

    【讨论】:

    • 非常感谢,我试试看!
    【解决方案2】:

    这个 bash 脚本应该按照您的描述进行:

    for i in {1..99}
    do
      NUMBER="$(printf "%03d" $i)"
      cp ~/$NUMBER/red ~/global/$NUMBER
    done
    

    在循环的每次迭代中,变量 $NUMBER 被分配给 printf 命令的输出(打印 i 的值,并在前面使用适当的 0 填充进行格式化)。然后 $NUMBER 用于指定从 001 到 099 的目录名。

    编辑:哎呀,看起来 Stefan 打败了我

    【讨论】:

    • 感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-16
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 2023-02-03
    • 1970-01-01
    相关资源
    最近更新 更多