El comando mv se usa para mover archivos, me imagino que es ejemplo de inicios de clases en shell scripting, no se si te lo piden manual o con bucles, etc.
Solamente tenes que usar mv con el nombre que deseas mover al directorio que lo deseas mover.
perro
gato
nube
cielo
por otro lado en otro directorio estan generandose archivos con titulos como:
bonito perro negro.txt
feo perro blanco.txt
123 perro azul.txt
mi gato 1.txt
tu gato 2.txt
su gato 3.txt
1 nube negra.txt
2 nube negra.txt
5 nube blanca.txt
cielo azul.txt
cielo azul 2.txt
Lo podes hacer fácil con:
#!/bin/bash
mv directorio_con_archivos/*gato* gato/*
mv directorio_con_archivos/*perro* perro/*
mv directorio_con_archivos/*nube* nube/*
mv directorio_con_archivos/*cielo* cielo/*
Ejemplo con un bucle automatizado
~/ejemplo_bash$ cat script.sh
#!/bin/bash
for i in "gato" "perro" "nube" "cielo"
do
mv directorio_con_archivos/*$i* $i/
done
Ejemplo de ejecución y contenidos de folders:
svcommunity@v3:~/ejemplo_bash$ mkdir gato
svcommunity@v3:~/ejemplo_bash$ mkdir perro
svcommunity@v3:~/ejemplo_bash$ mkdir nube
svcommunity@v3:~/ejemplo_bash$ mkdir cielo
svcommunity@v3:~/ejemplo_bash$ cd directorio_con_archivos/
svcommunity@v3:~/ejemplo_bash/directorio_con_archivos$ touch bonitoperronegro.txt
svcommunity@v3:~/ejemplo_bash/directorio_con_archivos$ touch feoperroblanco.txt
svcommunity@v3:~/ejemplo_bash/directorio_con_archivos$ touch 123perroazul.txt
svcommunity@v3:~/ejemplo_bash/directorio_con_archivos$ touch migato1.txt
svcommunity@v3:~/ejemplo_bash/directorio_con_archivos$ touch tugato2.txt
svcommunity@v3:~/ejemplo_bash/directorio_con_archivos$ touch sugato3.txt
svcommunity@v3:~/ejemplo_bash/directorio_con_archivos$ touch 1nubenegra.txt
svcommunity@v3:~/ejemplo_bash/directorio_con_archivos$ touch 2nubenegra.txt
svcommunity@v3:~/ejemplo_bash/directorio_con_archivos$ touch 5nubeblanca.txt
svcommunity@v3:~/ejemplo_bash/directorio_con_archivos$ touch cieloazul.txt
svcommunity@v3:~/ejemplo_bash/directorio_con_archivos$ touch cieloazul2.txt
svcommunity@v3:~/ejemplo_bash/directorio_con_archivos$ ls
123perroazul.txt 2nubenegra.txt bonitoperronegro.txt cieloazul2.txt migato1.txt tugato2.txt
1nubenegra.txt 5nubeblanca.txt cieloazul.txt feoperroblanco.txt sugato3.txt
svcommunity@v3:~/ejemplo_bash/directorio_con_archivos$ cd ..
svcommunity@v3:~/ejemplo_bash$ find ./
./
./nube
./cielo
./directorio_con_archivos
./directorio_con_archivos/sugato3.txt
./directorio_con_archivos/migato1.txt
./directorio_con_archivos/2nubenegra.txt
./directorio_con_archivos/5nubeblanca.txt
./directorio_con_archivos/tugato2.txt
./directorio_con_archivos/cieloazul.txt
./directorio_con_archivos/cieloazul2.txt
./directorio_con_archivos/bonitoperronegro.txt
./directorio_con_archivos/123perroazul.txt
./directorio_con_archivos/feoperroblanco.txt
./directorio_con_archivos/1nubenegra.txt
./gato
./perro
./script.sh
svcommunity@v3:~/ejemplo_bash$ bash script.sh
svcommunity@v3:~/ejemplo_bash$ find ./
./
./nube
./nube/2nubenegra.txt
./nube/5nubeblanca.txt
./nube/1nubenegra.txt
./cielo
./cielo/cieloazul.txt
./cielo/cieloazul2.txt
./directorio_con_archivos
./gato
./gato/sugato3.txt
./gato/migato1.txt
./gato/tugato2.txt
./perro
./perro/bonitoperronegro.txt
./perro/123perroazul.txt
./perro/feoperroblanco.txt
./script.sh
svcommunity@v3:~/ejemplo_bash$
Ahora si lo queres automatizar lo metes en un cronjob, para que se ejecute cada cierto tiempo que le configures.