Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 多条件循环,while,if_Bash_Embedded Linux - Fatal编程技术网

Bash 多条件循环,while,if

Bash 多条件循环,while,if,bash,embedded-linux,Bash,Embedded Linux,我的问题是:我需要将不同的文件名从一个公共目录移动到不同的目录文件夹中。我是Linux新手,我刚刚做了一些测试,但我被困在这个问题上。例如: 这些文件:月亮,大海,猴子,牛奶 需要在已创建的不同特定文件夹中移动,以便 月亮必须移到/家/月亮 海必须移到/家/海 我会尽可能少用代码来解决这个问题。你能帮我吗 提前谢谢 更新: 这就是我所做的,但我会进行优化,因为我必须通过更改每个不同文件的$dirpath来为每个需要移动的文件重复此代码,因为我不知道如何将我搜索的文件($stuff)与需要移动文件

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

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

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

月亮必须移到/家/月亮

海必须移到/家/海

我会尽可能少用代码来解决这个问题。你能帮我吗

提前谢谢

更新:

这就是我所做的,但我会进行优化,因为我必须通过更改每个不同文件的$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  
你能告诉我如何改进这个代码吗

试试这个:

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

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

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

到目前为止你有什么?请给出一个实际的例子,说明你想做什么,如果一个文件需要移动到一个同名的目录中,那么这些目录中只有一个文件,实际上你不需要条件。