将文件从目录中的文件夹复制到新文件夹

时间:2015-10-26 18:32:59

标签: bash shell

  • 我想将文件从一个文件夹复制到另一个文件夹,我在文件夹中有二进制数据文件,txt文件等。

  • 但是例如我的文件存储在folder1中,假设脚本应该创建一个名为folder2的新文件夹

我尝试使用以下代码,但我没有成功

#!/usr/bin/env bash

for file in /home/mj/New Folder/*inp
    name="$(basename "$file" .inp)"

for file in ~/home/mj/New Folder/*coor
    name="$(basename "$file".dcd)"


for file in ~/home/mj/New Folder/*pdb
    name="$(basename "$file".coor)


mkdir -p /home/mj/New Folder/"$name"

    cp "$file" "/home/mj/New Folder/"$name"

done

1 个答案:

答案 0 :(得分:0)

问题是你似乎试图将3个循环混合成一个。你需要这样的东西:

#!/usr/bin/env bash

for file in /home/mj/New Folder/*inp ; do
    name="$(basename "$file" .inp)"
    mkdir -p /home/mj/New Folder/"$name"
    cp "$file" "/home/mj/New Folder/$name"
done

for file in ~/home/mj/New Folder/*coor
    name="$(basename "$file".dcd)"
    mkdir -p /home/mj/New Folder/"$name"
    cp "$file" "/home/mj/New Folder/$name"
done

for file in ~/home/mj/New Folder/*pdb
    name="$(basename "$file".coor)"
    mkdir -p /home/mj/New Folder/"$name"
    cp "$file" "/home/mj/New Folder/$name"
done

请注意您在提交的脚本中不匹配的引号。 当然,有很多方法可以使这更好,并避免重复循环三次,但我想这超出了这个问题的范围。