Saya memiliki sejumlah besar file kecil, f, disusun dalam struktur direktori seperti:
/A/B/C/f
Ada 11 direktori di level A, masing-masing dengan sekitar 100 direktori di level B, masing-masing dengan sekitar 30 direktori di level C, masing-masing dengan satu file f.
Bagaimana cara memindahkan semua file untuk satu tingkat? Misalnya, mengingat kumpulan file ini ...
/ A / B / C / f1
/ A / B / C / f2
/ A / B / C / f3
/ A / B / C / f4
Saya ingin direktori /A/B/
berisi 4 file, f1 hingga f4. Menghapus direktori C tidak perlu.
Saya berharap ini adalah masalah diselesaikan, mungkin melibatkan find
, xargs
dan whatnot
. Ada ide?
Bersulang,
James
Dugaan pertama saya adalah
selama Anda tidak menentukan
-depth
itu harus ok. Saya belum mencobanya jadi ujilah terlebih dahulu sebelum Anda berkomitmen untuk itu.sumber
mv
Perintah dijalankan di direktori saat ini, jadi..
jangan lakukan apa yang Anda harapkan. Lihat jawaban saya untuk solusi. @ jl6: shell tidak ada hubungannya..
, itu ditangani oleh kernel.Jika Anda hanya ingin memindahkan file yang ada di direktori daun (yaitu Anda tidak ingin pindah
/A/B/file
ke/A
jikaB
berisi subdirektori) maka berikut adalah beberapa cara untuk melakukannya:Keduanya membutuhkan ini
Yang ini berfungsi:
Ini akan lebih cepat, tetapi tidak suka direktori sumber kosong:
sumber