Como você marcou isso como linux
, assumirei os utilitários GNU.
Copie a estrutura de diretórios de $src
para $dest
:
find "$src" -type d -print0 | cpio -padmv0 "$dest"
Copie também uma amostra aleatória de arquivos $nfile
de cada subdiretório folha de $src
:
find "$src" -type d -links 2 -exec \
sh -c 'find "$1" -type f -print0 | shuf -z -n "$2"' sh {} "$nfiles" \; | \
cpio -padmv0 "$dest"
Aqui, o primeiro find
localiza os subdiretórios da folha ( -links 2
), depois o segundo find
localiza os arquivos em cada um desses subdiretórios. shuf
escolhe uma amostra aleatória de arquivos e, finalmente, cpio
copia-os.