Bagaimana saya bisa memindahkan file yang terdapat di semua subdirektori ke direktori saat ini, dan kemudian menghapus subdirektori kosong?
Saya menemukan pertanyaan ini , tetapi mengadaptasi jawaban untuk:
mv * .
tidak bekerja; Saya menerima banyak peringatan seperti:
mv: wil and ./wil are identical
File yang terkandung dalam subdirektori memiliki nama unik.
sumber
-n, --no-clobber
jangan menimpa file yang ada. Anda mungkin tertarik-b, --backup
juga.Coba ini:
More Info: Coba temukan-stamement saja, itu akan memberi Anda daftar dengan semua file yang ingin Anda pindahkan (biarkan keluar
-print0
). Contoh:dengan
-print0
danxargs
Anda sekarang membuat daftar pernyataan untuk dieksekusi. The-J %
berarti bendera, insert daftar elemen di sini, jadimv $FILE .
dijalankan untuk setiap file yang ditemukan.Di atas berfungsi untuk xargs BSD. Jika Anda menggunakan versi GNU (Linux)
-I %
alih-alih-J %
sumber
Bash 4:
sumber
1 trik cepat, hanya berfungsi jika file Anda memiliki ekstensi (dengan titik):
sumber
Jalankan saja perintah ini :-)
mv **/*.* .
sumber
.
dalam nama mereka, bukan?