Ratakan Hierarki Fail Direktori Bersarang & daripada Baris Perintah Mac OS X
Pernahkah anda perlu meratakan struktur direktori, mengalihkan semua kandungan fail daripada folder anak direktori ke dalam satu folder? Walaupun anda boleh melakukan ini secara manual dengan mengalihkan fail dan folder daripada sistem fail Mac OS X atau Linux, pilihan yang lebih pantas ialah beralih kepada baris arahan. Mungkin pada satu ketika anda mencipta hierarki direktori bersarang yang kini anda perlu buat asal dengan mengalihkan semua fail keluar daripada folder bersarang tersebut dan kembali ke dalam satu direktori, atau mungkin anda ingin memudahkan struktur direktori, walau apa pun sebabnya, ini muslihat berfungsi dengan baik.
Menggunakan baris arahan untuk mencapai perataan fail dan struktur direktori jelas sekali dikhaskan untuk pengguna lanjutan yang selesa menggunakan terminal secara umum, jika itu tidak menggambarkan anda, pertimbangkan untuk melakukannya secara manual melalui Finder , atau menggunakan apl Mac Automator untuk mencapai automasi aktiviti sistem fail yang serupa. Walau bagaimanapun, kami memfokuskan pada perataan direktori daripada baris arahan di sini.
Contoh Meratakan Direktori Fail Bersarang
Untuk lebih memahami perkara yang kami cuba capai, mari kita ambil contoh struktur direktori khayalan yang dipanggil TestDirectory yang terletak dalam folder Laman Utama pengguna. Dalam contoh ini, TestDirectory mengandungi subfolder seperti SubDirectory1, SubDirectory2, SubDirectory3, dll, masing-masing dengan fail dalam folder tersebut. Apa yang kami ingin lakukan di sini ialah meratakan struktur direktori, mengalihkan semua fail daripada SubDirectory(X) ke direktori induk "TestDirectory".Direktori awal dan kandungan yang ditunjukkan secara rekursif dengan mungkin kelihatan seperti ini:
$ cari ~/TestDirectory/ -type f ~/TestDirectory/rooty.jpg ~/TestDirectory/SampleDirectory1/beta-tool-preview.jpg ~/TestDirectory/SampleDirectory1 /alphabeta-tool.jpg ~/TestDirectory/SampleDirectory2/test-tools.jpg ~/TestDirectory/SampleDirectory3/test-png.jpg ~/TestDirectory/SampleDirectory3/test1.jpg ~/TestDirectory/SampleDirectory3/test2.jpg
Untuk meratakan kandungan direktori dan subdirektori ini kembali ke dalam folder TestDirectory, anda akan menggunakan rentetan arahan berikut:
cari TargetDirectory/ -mindepth 2 -type f -exec mv -i '{}' TargetDirectory/ ';'
Selepas kandungan direktori telah diratakan, ia sepatutnya kelihatan seperti ini apabila disenaraikan keluar:
~/TestDirectory/rooty.jpg ~/TestDirectory/beta-tool-preview.jpg ~/TestDirectory/alphabeta-tool.jpg ~/TestDirectory/test-tools .jpg ~/TestDirectory/test-png.jpg ~/TestDirectory/test1.jpg ~/TestDirectory/test2.jpg
Perhatikan subdirektori masih akan wujud, ia hanya akan kosong. Masuk akal? Jika tidak, atau jika itu tidak menunjukkan perkara yang anda ingin capai, anda mungkin tidak mahu meratakan direktori sama sekali, mungkin anda ingin menggabungkan atau menggunakan ditto untuk membuat salinan kompleks ke tempat lain.
Meratakan Struktur Direktori & Hierarki Fail Bersarang dengan Baris Perintah
Bersedia untuk meneruskan? Rentetan arahan yang akan kami gunakan untuk meratakan struktur direktori dan mengalihkan semua fail daripada subdirektori ke pangkal direktori sasaran adalah seperti berikut:
cari -mindepth 2 -type f -exec mv -i '{}' ';'
Ganti dengan direktori pilihan anda untuk diratakan, seperti yang ditunjukkan dalam contoh di atas.
Ya, direktori muncul dua kali dalam rentetan arahan, kali pertama ialah direktori sedang dicari untuk meratakan subdirektori dan kali kedua sebagai destinasi untuk item yang ditemui.
Tepat dengan destinasi yang ditentukan, kerana ini tidak boleh diterbalikkan (sekurang-kurangnya tanpa banyak kerja manual di pihak anda), jadi hanya lakukan ini jika anda benar-benar pasti mahu berpindah semua fail dalam direktori kanak-kanak direktori sasaran kembali ke folder akar sasaran.
Seperti yang dinyatakan sebelum ini, anda juga boleh melakukan ini dalam Finder OS X, atau sekurang-kurangnya memerhatikan perubahan fail dan folder dalam Finder. Pilihan+mengklik anak panah kecil dalam paparan Senarai membuka semua subdirektori, menunjukkan hierarki folder seperti ini:
Selepas bermain-main dengan pelbagai alternatif bash dan zsh, helah berguna ini ditinggalkan oleh pengulas pada StackExcange dan ia akhirnya menjadi kaedah yang paling mudah dan paling serasi. Jika anda mengetahui cara yang lebih baik untuk meratakan direktori bersarang, beritahu kami dalam ulasan!