Anda dapat melakukan ini dengan GNU finddan GNU mv:
find /dir1 -mindepth 2 -type f -exec mv -t /dir1 -i '{}' +
Pada dasarnya, cara yang berfungsi jika findmelewati seluruh pohon direktori dan untuk setiap file ( -type f) yang tidak ada di direktori tingkat atas ( -mindepth 2), ia menjalankan a mvuntuk memindahkannya ke direktori yang Anda inginkan ( -exec mv … +). The -targumen untuk mvmemungkinkan Anda menentukan direktori tujuan pertama, yang diperlukan karena +bentuk -execmenempatkan semua lokasi sumber di akhir perintah. The -imerek mvbertanya sebelum Timpa duplikat apapun; Anda dapat menggantikan -fmenimpa mereka tanpa meminta (atau -nuntuk tidak meminta atau menimpa).
Seperti yang ditunjukkan Stephane Chazelas, hal di atas hanya berfungsi dengan alat GNU (yang merupakan standar pada Linux, tetapi tidak pada kebanyakan sistem lainnya). Berikut ini agak lambat (karena memanggil mvbeberapa kali) tetapi jauh lebih universal:
find /dir1 -mindepth 2 -type f -exec mv -i '{}' /dir1 ';'