Se os arquivos tiverem nomes não exclusivos,
cp "Main Directory"/*/Subsubdirectory1/* destdir
sobrescreveria alguns dos arquivos no destino. Isso também falharia se houvesse milhares de nomes de caminho correspondentes.
Para contornar isso, usando o GNU cp
:
for pathname in "Main Directory"/*/Subsubdirectory1/*; do
cp --backup=numbered "$pathname" destdir
done
Isso criaria backups numerados dos arquivos que seriam sobrescritos.
A mesma coisa, mas usando não-GNU cp
:
for pathname in "Main Directory"/*/Subsubdirectory1/*; do
# create first stab at destination pathname
dest="destdir/${pathname##*/}"
i=0
while [ -e "$dest" ]; do
# destination name exists, remove backup number from end of
# pathname and replace with next one in the sequence
i=$(( i + 1 ))
dest="${dest%.~*~}.~$i~"
done
cp "$pathname" "$dest"
done