web-dev-qa-db-fra.com

Lister tous les dossiers et sous-dossiers avec bash

J'ai essayé d'utiliser PHP pour lire mon dossier et le sous-dossier pour créer un menu de base que je pouvais utiliser, mais j'ai remarqué que cela prenait un certain temps, car il devait être exécuté à chaque fois que je me rendais à. la page.

Ensuite, je me suis dit, pourquoi ne pas utiliser bash et lui faire créer un fichier texte que PHP puisse lire et le faire fonctionner tous les soirs avec crontab? Alors j'ai cherché et essayé mais ce n'était pas si facile.

Avec ce code, je peux obtenir UN seul sous-dossier

for D in /var/www/html/lib/*; do
    if [ -d "${D}" ]; then
        echo "${D}"
    fi
done

cela m'a donné

/var/www/html/lib/folder1
/var/www/html/lib/folder2
/var/www/html/lib/folder3
...

Mais les dossiers ont tous des sous-dossiers comme

/var/html/lib/folder1/1990
...

Mon idée était de faire une boucle et ensuite d'utiliser

myfolder= "${D}"
addresstoremove="var/www/html/"

printf '%s\n' "${myfolder//$addresstoremove/}" >> textfile.txt

il supprime donc l'adresse dont je n'ai pas besoin dans mon code PHP

4
Cazz
find /var/www/html/lib/ -type d

ou

find /var/www/html/lib/ -type d >> file.txt
5
Vijay