Recovered the pseudo-empty-dirs.sh script from commit 6cf1a0cc35
.
This commit is contained in:
parent
9a2cc358d1
commit
4b2f7373a7
39
pseudo-empty-dirs.sh
Executable file
39
pseudo-empty-dirs.sh
Executable file
|
@ -0,0 +1,39 @@
|
|||
#!/bin/zsh
|
||||
|
||||
# masque les dossiers qui ne contiennent que des fichiers dont le nom est
|
||||
# .%fichier, récursivement (les dossiers sont masqués en préfixant ".%" à
|
||||
# leur nom, donc les dossiers ne contenant que des fichiers / dossiers
|
||||
# masqués le seront eux aussi.
|
||||
# Un dossier n'est pas masqué ssi il contient au moins un fichier
|
||||
# (regular file) ou dossier non masqué.
|
||||
|
||||
setopt dotglob
|
||||
|
||||
dohide() {
|
||||
local x pseudo_empty subdirs si
|
||||
echo "[$1] $PWD"
|
||||
cd "./$1"
|
||||
pseudo_empty="1"
|
||||
si=1
|
||||
subdirs=()
|
||||
for x in *(N/); do
|
||||
if [ "${x[0,2]}" != ".%" ]; then
|
||||
subdirs[si]="$x"
|
||||
si=$(($si+1))
|
||||
fi
|
||||
done
|
||||
while [ $si -gt 1 ]; do
|
||||
si=$(($si-1))
|
||||
dohide "${subdirs[si]}"
|
||||
done
|
||||
for x in *(/,.NoN); do # N = pas d'erreur quand vide, oN = order none, / = dossiers, . = fichiers
|
||||
if [ "${x[0,2]}" != ".%" ]; then
|
||||
pseudo_empty="0"
|
||||
break;
|
||||
fi
|
||||
done
|
||||
cd ..
|
||||
[ "$pseudo_empty" = "1" ] && [ "${1[0,2]}" != ".%" ] && mv -i -- "$1" ".%$1"
|
||||
}
|
||||
|
||||
dohide .
|
Loading…
Reference in New Issue
Block a user