Après les pérégrinations autour de awk utilisons le tout pour mettre en forme une arborescence et en afficher les attributs voulus. A base de awk et sed \o/
find /path -type d -exec ls -ld {} \; | awk '{ DIR=""
if (NF>9)
{
for (i=NF;i<=NF;i++)
{
DIR=DIR" "$i
}
}
else
{
DIR=$9
}
printf("%s [Usr: %s, Grp: %s]\n", DIR, $3, $4)}' | \
sed 's/[^/]*\//| /g;s/| *\([^| ]\)/+--- \1/'
Ce qui nous donne un résultat pour /var/log par exemple :
| +--- log [Usr: root, Grp: root]
| | +--- gdm [Usr: root, Grp: gdm]
| | +--- sssd [Usr: root, Grp: root]
| | +--- glusterfs [Usr: root, Grp: root]
| | +--- minidlna [Usr: minidlna, Grp: minidlna]
| | +--- libvirt [Usr: root, Grp: root]
| | | +--- libxl [Usr: root, Grp: root]
| | +--- tomcat [Usr: root, Grp: tomcat]
| | +--- sa [Usr: root, Grp: root]
| | +--- chrony [Usr: chrony, Grp: chrony]
| | +--- redis [Usr: redis, Grp: root]
| | +--- upgrade.journal [Usr: root, Grp: root]
| | | +--- 133cff700ccf4d6e871cfdcf772fdb4f [Usr: root, Grp: root]
| | | +--- 9e3d4b6532ff41e1ab40d6b4e5609907 [Usr: root, Grp: root]
| | +--- httpd [Usr: root, Grp: root]
| | +--- ceph [Usr: root, Grp: root]
| | +--- samba [Usr: root, Grp: root]
| | | +--- old [Usr: root, Grp: root]
| | | +--- cores [Usr: root, Grp: root]
| | | | +--- smbd [Usr: root, Grp: root]
| | | | +--- nmbd [Usr: root, Grp: root]
| | | | +--- winbindd [Usr: root, Grp: root]
| | +--- anaconda [Usr: root, Grp: root]
| | +--- audit [Usr: root, Grp: root]
| | +--- ppp [Usr: root, Grp: root]
| | +--- cups [Usr: lp, Grp: sys]
| | +--- mongodb [Usr: mongodb, Grp: root]
| | +--- mail [Usr: root, Grp: root]
| | +--- prelink [Usr: root, Grp: root]
Si jamais vous êtes en galère de tree, cela peut vous servir :)