Eu suponho que na casa de alguns de seus usuários existe um diretório chamado d1 e dentro deste um subdiretório chamado d2 .
Suponho que você queira fazer algo semelhante a
#!/bin/bash
for i in /home/*/d1 ; do
if [ -d "$i/d2" ]; then
# echo "$i/d2"
find "$i" -maxdepth 1 -type f -exec mv {} "$i/d2" \;
fi
done
Nota:
- Se no nome real de
d1houver alguns espaços, você precisará fazer mais alguns exercícios e protegê-los com um\(para poder escreverfor i in /home/*/directory\ with\ spaces; do). - Tente escrever
echo $directory2 ; exitno seu script anterior e você entenderá por que ele se comporta de maneira diferente do que você espera. Mais informações sobre Expansão do nome do arquivo .