4 votes

Lister tous les dossiers et sous-dossiers avec bash

J'ai essayé d'utiliser PHP pour lire mon dossier et le sous-dossier afin de créer un menu de base que je peux utiliser, mais j'ai remarqué que cela prenait un certain temps car il doit l'exécuter à chaque fois que je vais sur la page.

Puis j'ai pensé, pourquoi ne pas utiliser bash et lui faire créer un fichier texte que PHP peut lire et le faire tourner chaque nuit avec crontab ? J'ai donc cherché et essayé mais ce n'était pas si facile.

Avec ce code, je peux obtenir UN 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 tels que

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

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

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

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

afin de supprimer l'adresse dont je n'ai pas besoin dans mon code PHP.

5voto

Vijay Points 6526
find /var/www/html/lib/ -type d

o

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X