多条件循环,而如果

时间:2013-03-23 10:14:51

标签: bash embedded-linux

这是我的问题:我需要将不同的文件名从公共目录移动到不同的目录文件夹中。我是Linux的新手,我刚刚做了一些测试,但我遇到了这个问题。例子是:

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

需要在已创建的不同特定文件夹中移动

月亮必须移到/ home / moon

海必须搬到/ home / sea

我会尽可能少地使用代码来解决。你能帮帮我吗?

提前致谢

更新:

这就是我所做的,但我会优化,因为我必须通过更改每个不同文件的$ 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  

你能告诉我如何改进这段代码吗?

2 个答案:

答案 0 :(得分:1)

试试这个:

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

答案 1 :(得分:0)

移动到存储文件的目录并运行以下代码行。

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