2015-10-26 230 views
-3
  • 我想将文件从一个文件夹复制到另一个文件夹,我在文件夹中有二进制数据,txt文件等文件。将文件从目录中的文件夹复制到新文件夹

  • 但是例如我的文件都存储在一个文件夹1可以说脚本应该做一个newfolder名称为文件夹2

我曾尝试用下面的代码,但我没有成功

#!/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 
+0

这是python? - 使用shutil – Busturdust

+0

OP很可能对python解决方案开放,尽管他们已经尝试了bash解决方案 – inspectorG4dget

+0

我需要bash解决方案或python,但它更适合使用bash解决方案,... – learner

回答

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 

还要小心你的报价,在你提交的脚本中不匹配。 当然有很多方法可以使这个更好,避免重复三次循环,但我想这已经超出了这个问题的范围。

+0

谢谢,但它做了一些奇怪的做两个文件夹新建和文件夹separatley,而不是复制这些扩展名的文件....例如,如果我有一个文件夹1有文件somename.inp,somename.restart。 coor和somename.dcd文件如何将这些文件复制到自动制作新文件夹说folder2 ,,请如何使此代码更好,谢谢 – learner

+0

如果您有新建和文件夹单独创建,那么它意味着您的报价不匹配(确保/ home/mj/New Folder/$ name包含在“) – secolive

+0

现在制作文件夹2但它不复制文件夹中的文件2 – learner

相关问题