
Ich habe eine Dateistruktur mit mehreren Unterordnern, in denen ich nach allen Unterordnern suchen möchte, die eine bestimmte Zeichenfolge („sub*“) enthalten, und dann alle Dateien in diesen gefundenen Ordnern von ihrem jeweiligen Speicherort aus eine Ebene nach oben verschieben möchte. Und möglicherweise sogar den dann leeren Ordner löschen, aber das könnte ich auch in einem zweiten Schritt tun.
Antwort1
Das hier sollte genügen:
find /path/to/base/folder/ -type d -name 'sub*' -exec bash -c 'mv {}/* "$(dirname {})"' \;
NOTIZ: dadurch werden keine versteckten Dateien verschoben (deren Name mit beginnt .
)
Antwort2
find /path/to -type f -execdir mv {} .. \;