GNU/Linux >> Belajar Linux >  >> Linux

Shell Script:Menyortir File Ke Direktori Dan Subdirektori?

Saya rutin menulis catatan saya di markdown dalam struktur direktori yang kompleks seperti ini.

~/doc/doc.md
~/doc/math/linearAlgebra/linearAlgebra.md
~/doc/math/linearAlgebra/numericalAnalysis.md
~/doc/linux/tmux/tmux.md
~/doc/linux/newsbeuter/newsbeuter.md

Struktur direktori ini terus berkembang dan setiap direktori memiliki berbagai file lain selain dari *.md file. Saya memiliki skrip shell yang secara rekursif mencari markdown files di direktori induk doc/ dan menghasilkan html dan pdf file menggunakan pandoc . Saya juga membuat doc.md file (melalui skrip) yang berisi daftar semua *.md file. Saat ini saya menggunakan,

find ~/doc/**/*.md

untuk menghasilkan daftar ini. Saya ingin mengurutkannya menurut struktur direktori agar mudah dibaca seperti ini:

math
   linearAlgebra
                          linearAlgebra.md
                          numericalAnalysis.md
linux
   tmux
                          tmux.md
   newsbeuter
                          newsbeuter.md

Jika fp=/home/user/doc/linux/tmux/tmux.md adalah contoh path lengkap dari sebuah file, lalu ${${fp%/*.md}#/home/user/doc/} memberi saya linux/tmux . Saya dapat memprosesnya lebih lanjut untuk mengisolasi linux dan tmux dll. Tapi saya tidak tahu algoritma untuk membuat struktur direktori. Saya pikir ini akan membutuhkan penggunaan array untuk menyimpan struktur direktori lengkap untuk setiap file dan kemudian menyortirnya.

Jika skrip Shell sudah ada untuk ini, beri tahu saya. Jika tidak, petunjuk tentang kemungkinan algoritme dipersilakan.

Jawaban yang Diterima:

Jika semua yang ingin Anda lakukan adalah menghasilkan output berformat bagus dari semua .md file, tree harus melakukan apa yang Anda inginkan:

tree -P '*.md' /home/user/doc

Tambahkan -A untuk garis cantik, ia juga melakukan hal-hal menarik seperti output ke HTML/XML.


Linux
  1. Cara Menemukan Jumlah File dalam Direktori dan Subdirektori

  2. Linux Hapus File dan Direktori

  3. Temukan semua file nol-byte di direktori dan subdirektori

  1. Cara Mengidentifikasi Direktori Kerja Menggunakan Karakter dan Variabel Shell

  2. Cara Menghitung Jumlah File dan Subdirektori di dalam Direktori yang Diberikan

  3. 9 direktori Linux yang harus Anda buat cadangannya dan yang tidak boleh

  1. Perintah Untuk Membuat Zip Banyak Direktori Menjadi File Zip Individual?

  2. Bagaimana cara ftp dan Mengunduh file dari Skrip Shell UNIX?

  3. Membuat dan Menghapus File dan Direktori Di Linux