Pindahkan beberapa file bersarang ke atas hingga kedalaman hanya 1 direktori

1

Saya memiliki banyak file di banyak direktori, beberapa di antaranya terkubur dalam subdirektori. Saya ingin dapat memindahkan semua file sampai kedalamannya hanya 1 direktori.

sebagai contoh:

/home/folder/subfolder/file1.txt
/home/folder2/file2.txt
/home/folder3/subfolder/subfolder/subfolder/file3.txt

menjadi:

/home/folder/file1.txt
/home/folder2/file2.txt
/home/folder3/file3.txt

Saya menemukan bahwa saya dapat menggunakan

find ./*/ -type f

untuk mencari semua file. Tapi saya tidak yakin bagaimana cara memindahkannya sehingga kedalamannya hanya 1 direktori.

Zach
sumber

Jawaban:

0

Saya menemukan jawaban dalam bentuk skrip bash

#!/bin/sh

IFS='
'
for i in $(find ./*/ -mindepth 2 -type f); do
    mv -- "${i}" "${i%/*/*}"
done
Zach
sumber