2013-03-23 115 views
0

這裏是我的問題:我需要將不同的文件名從一個公共目錄移動到不同的目錄文件夾中。我是Linux新手,我只是做了一些測試,但是我在這個問題上陷入困境。這個例子是:多個條件循環,而如果

這些文件:月亮,海,猴子,牛奶

需要在已創建的,因此不同的特定文件夾移動

月亮必須移動到/ home /月

海必須移動到/ home/sea

我會盡可能使用更少的代碼來解決。你能幫助我嗎?

在此先感謝

UPDATE:

這是我做的,但我會優化,因爲我不得不重複此代碼爲每一個我需要通過改變$ dirpath每個不同的文件移動文件因爲我不知道如何將我搜索的文件($ stuff)與需要移動文件的正確目錄($ dirpath)關聯起來。

stuff="*Milk*" 

if test -n "$(find /volume1/Incoming/ -iname "$stuff")" 
    then 
    dirpath="/volume1/home/My milk" 
    echo -n Action taken file move:" " >/volume1/homes/admin/result 
    find /volume1/Incoming/ -iname "$stuff" -print >>/volume1/homes/admin/result -exec mv {} "$dirpath" \; 
    echo Destination: $dirpath >>/volume1/homes/admin/result 

你能告訴我如何改進這段代碼嗎?

+4

到目前爲止你有什麼?並且請顯示您想要完成的事情的實際示例,如果需要將文件移動到具有相同名稱的目錄中,那麼您將只在這些目錄中擁有一個文件,並且實際上並不需要條件。 – Mat 2013-03-23 10:20:03

回答

1

試試這個:

for i in moon sea monkey milk 
do 
    mv /your/dir/$i /home/$i 
done 
0

移動到文件所在的文件存放的目錄,並運行的代碼下面的線。

for i in * 
do 
mv $i /home/$i 
done