将文件复制到多个文件夹Linux

时间:2014-03-07 02:24:12

标签: linux copy

我在目录/ xyz中。在这个/ xyz目录中,有多个学生文件夹按字母顺序存储在其名称中。 所以我有一个文件value.txt,我想复制到所有名字以A,B,C,D uptil R开头的学生文件夹。

例如,在/ xyz中我有以下目录:

/艾米

/布兰登

/查尔斯

/吉娜

/罗伯特

/麦克

/彼得

/百合

我想将value.txt复制到名称从A到R的所有文件夹中

/艾米

/布兰登

/查尔斯

/吉娜

/罗伯特

由于 任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:2)

for dirname in $(ls -d [a-r]*)
do
    cp value.txt ${dirname}/
done

答案 1 :(得分:2)

您可以执行以下操作:

for s in [a-r]*; do cp file.text $s; done

答案 2 :(得分:0)

另一方面,如果说要排除的字母数量会使脚本变得更简单,那么您可以执行以下操作:

 [^YZ]*

此[^ YZ]模式将匹配除Y或Z之外的任何字符 - bash手册有更多详细信息。 Read ths

答案 3 :(得分:0)

将以下行复制到文件中,例如:cpFile2Dirs.sh

#!/bin/bash
dList=`ls -d */`

for d in $dList;
do
    if [[ $d == [a-rA-R]* ]];
    then
        cp $1 $d
    fi

done

应位于您当前正在处理的目录中。

然后执行

bash cpFile2Dirs.sh value.txt

这会将文件value.txt复制到以/ A开头到r / R的所有目录,如if语句中所定义。你可以随意改变它。

您还可以为脚本设置执行权限

chmod +x cpFile2Dirs.sh

然后您不需要运行bash copyValues.sh value.txt,而只需

./cpFile2Dirs.sh value.txt

希望它有所帮助。