2015-10-26 227 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

相關問題