Mac OS X'in Komut Satırından Yuvalanmış Bir Dizin & Dosya Hiyerarşisini Düzleştirin
Dosyaların ve dizin yapılarının düzleştirilmesini gerçekleştirmek için komut satırını kullanmak, açıkçası en iyi şekilde, genel olarak terminal kullanma konusunda rahat olan ileri düzey kullanıcılar için ayrılmıştır, eğer bu sizi tanımlamıyorsa, bunu Finder aracılığıyla manuel olarak yapmayı düşünün. veya dosya sistemi etkinliklerinin benzer otomasyonunu gerçekleştirmek için Mac Automator uygulamasını kullanma. Ancak burada komut satırından dizin düzleştirmeye odaklanıyoruz.
İç İçe Dosya Dizinini Düzleştirme Örneği
Neyi başarmaya çalıştığımızı daha iyi anlamak için, bir kullanıcının Ana Sayfa klasöründe bulunan TestDirectory adlı örnek bir hayali dizin yapısını ele alalım. Bu örnekte TestDirectory, her biri ilgili klasörlerde dosyalara sahip olan SubDirectory1, SubDirectory2, SubDirectory3 gibi alt klasörler içerir. Burada yapmak istediğimiz, tüm dosyaları SubDirectory(X)'ten "TestDirectory" üst dizinine taşıyarak dizin yapısını düzleştirmek.ile yinelemeli olarak gösterilen ilk dizin ve içerik şuna benzer:
$ find ~/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
Bu dizini ve alt dizin içeriğini tekrar TestDirectory klasörüne düzleştirmek için aşağıdaki komut dizesini kullanırsınız:
TargetDirectory'i bul/ -minDefinition 2 -type f -exec mv -i '{}' TargetDirectory/ ';'
Dizin içeriği düzleştirildikten sonra, listelendiğinde şöyle görünmelidir:
~/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
Alt dizinlerin var olmaya devam edeceğini unutmayın, sadece boş olacaklar. Mantıklı olmak? Değilse veya bu, neyi başarmak istediğinizi göstermiyorsa, muhtemelen bir dizini düzleştirmek istemezsiniz, belki de başka bir yere karmaşık bir kopya yapmak için birleştirmek veya aynen kullanmak isteyebilirsiniz.
Bir Dizin Yapısını ve İç İçe Dosya Hiyerarşisini Komut Satırıyla Düzleştirme
Devam etmeye hazır mısınız? Bir dizin yapısını düzleştirmek ve tüm dosyaları alt dizinlerden hedef dizinin tabanına taşımak için kullanacağımız komut dizisi aşağıdaki gibidir:
find -minttling 2 -type f -exec mv -i '{}' ';'
Yukarıdaki örnekte gösterildiği gibi düzleştirmek için seçtiğiniz dizinle değiştirin.
Evet, dizin komut dizisinde iki kez görünür, ilk kez alt dizinlerini düzleştirmek için aranan dizindir ve ikinci kez bulunan öğeler için hedef olarak aranır.
Belirtilen varış yeri konusunda kesin olun, çünkü bu geri alınamaz (en azından sizin çok fazla el emeğiniz olmadan), bu yüzden bunu yalnızca yeniden yerleştirmek istediğinizden kesinlikle eminseniz yapın hedef dizinlerdeki alt dizinlerdeki tüm dosyalar hedef kök klasöre geri döner.
Daha önce de belirtildiği gibi, bunu OS X'in Finder'ında da yapabilir veya en azından Finder'da dosya ve klasör değişikliklerini gözlemleyebilirsiniz. Option+Liste görünümündeki küçük oklara tıklamak tüm alt dizinleri açarak klasör hiyerarşisini şu şekilde gösterir:
Çeşitli bash ve zsh alternatifleriyle uğraştıktan sonra, bu kullanışlı numara StackExcange'da bir yorumcu tarafından bırakıldı ve en kolay ve en uyumlu yöntem haline geldi. İç içe geçmiş bir dizini düzleştirmenin daha iyi bir yolunu biliyorsanız, yorumlarda bize bildirin!
