O problema é que esses diretórios não existem quando você tenta copiá-los. Você teria que fazê-los primeiro.
find home -type d -name 'static' -print0 | while IFS= read -rd '' dir; do
newdir="${dir#home/}"
mkdir -p otherhome/"$newdir"
cp -R "$dir" otherhome/"${newdir%static}"
done
Precisamos remover o home/
dos nomes de diretório originais e criar a nova hierarquia de pastas ( mkdir -p
). Então, copiamos o conteúdo recursivamente, mas também precisamos remover static
do final do novo diretório para não criar static/static
.
Pode haver uma maneira mais bonita de conseguir isso.
Exemplo antes e depois:
.
├── home
│ ├── dave
│ │ ├── documents
│ │ │ └── static
│ │ │ └── Untitled.txt
│ │ ├── otherfolders
│ │ └── pictures
│ │ └── static
│ │ └── Untitled2.txt
│ └── static
└── otherhome
├── dave
│ ├── documents
│ │ └── static
│ │ └── Untitled.txt
│ └── pictures
│ └── static
│ └── Untitled2.txt
└── static