GNU/Linux >> Znalost Linux >  >> Linux

Shell Script:Třídění souborů do adresářů a podadresářů?

Své poznámky běžně píšu v markdown ve složité adresářové struktuře, jako je tato.

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

Tato adresářová struktura se neustále rozšiřuje a každý adresář má různé další soubory kromě *.md soubory. Mám skript shellu, který rekurzivně hledá markdown files v nadřazeném adresáři doc/ a vygeneruje html a pdf soubory pomocí pandoc . Vytvořím také doc.md soubor (prostřednictvím skriptu), který obsahuje seznam všech *.md soubory. V současné době používám,

find ~/doc/**/*.md

k vygenerování tohoto seznamu. Chtěl bych je seřadit podle adresářové struktury pro snadné prohlížení takto:

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

Pokud fp=/home/user/doc/linux/tmux/tmux.md je příklad úplné cesty k souboru, pak ${${fp%/*.md}#/home/user/doc/} mi dává linux/tmux . Mohu to dále zpracovat, abych izoloval linux a tmux atd. Ale neznám algoritmus pro vytvoření adresářové struktury. Myslím, že to bude vyžadovat použití polí pro uložení kompletní adresářové struktury pro každý soubor a jeho následné třídění.

Pokud již existuje shell skript k tomuto, dejte mi prosím vědět. Jinak jsou odkazy na možný algoritmus vítány.

Přijatá odpověď:

Pokud vše, co hledáte, je vytvořit pěkný formátovaný výstup všech .md soubory, tree by měl dělat přesně to, co chcete:

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

Přidejte -A pro hezké řádky také dělá zajímavé věci, jako je výstup do HTML/XML.


Linux
  1. Jak spočítat počet souborů a podadresářů v daném adresáři

  2. 9 Linuxových adresářů, které musíte zálohovat, a jeden, který byste neměli

  3. Vytváření a odstraňování souborů a adresářů pod Linuxem

  1. Jak identifikovat pracovní adresáře pomocí Shell znaků a proměnných

  2. Jak zjistit počet souborů v adresáři a podadresářích

  3. Najděte všechny nulabajtové soubory v adresáři a podadresářích

  1. Linux Odstraňte soubory a adresáře

  2. Jak mohu ftp a stáhnout soubory ze skriptu prostředí UNIX

  3. Aktuální adresář skriptu Shell?