【问题标题】:Bash script - create dir(s), copy specific files while changing nameBash 脚本 - 创建目录,在更改名称时复制特定文件
【发布时间】:2019-07-26 07:25:13
【问题描述】:

我正在编写一个完成以下任务的 bash 脚本:

-在测试目录中创建3个目录,分别命名为dir1、dir2、dir3 - 将所有以“alpha”开头的文件复制到每个新创建的目录中,以便名称现在以目录名称开头

例如,输出应该是:dir1-alpha.txt

我知道 cp 不能一次复制到多个目录,只能从多个来源复制,所以我正在努力想出一个策略来做到这一点。

有人可以帮我用这些参数指出正确的方向吗?

【问题讨论】:

  • 使用循环。 for dir in dir1 dir2 dir3; do for f in alpha*; do cp $f $dir/$dir-$f; done; done

标签: bash scripting directory


【解决方案1】:

类似这样的:

#!/bin/bash
dir_names=('dir1' 'dir2' 'dir3')
path_to_files='/tmp/tmpfiles/'

for i in ${dir_names[@]}; do
    echo "Creating $i and copying over files..."
    mkdir $i
    for f in $(ls $path_to_files); do
        cp $path_to_files/$f $i/$i-$f
    done
done

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 2014-09-11
    • 1970-01-01
    • 2016-07-22
    • 1970-01-01
    相关资源
    最近更新 更多