Dateien aus dem Verzeichnis eine Ebene nach oben verschieben

Dateien aus dem Verzeichnis eine Ebene nach oben verschieben

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 {} .. \;

verwandte Informationen