Je viens tirer aussi les oreilles à jmelyn :
il est rarement utile, et toujours périlleux* d'utiliser ls dans des scripts!!
d'autant que Bash dispose du
Développement des chemins, par exemple :
affiche la taille et le chemin/nom des fichiers et répertoires du /home/$USER
maintenant, reste la question de la profondeur que tu souhaites donner à ta recherche : doit-elle aller dans tous les sous-répertoires, ou seulement dans les sous-répertoires immédiats d'un répertoire donné ?
* dans le sens d'acrobatique : ça contraint à des {manip,gestic}ulations surfaitatoires du code.
pour ma part, ne considérant que les sous-répertoires immédiats :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| #!/bin/bash
auMoinsUnFichier() {
item=$1
if [ -f "$item" ]
then #echo "{dir##*/}"
# affichage en gras du nom des répertoires
echo -e "\e[01m${dir##*/}\e[m"
for file in $@
do [ -f "$file" ] && stat -c'%s %n' "$file"
done | sort -n | sed 's/.*\/\([^/]*.*\)/\1/'
else shift
[ -n "$1" ] && auMoinsUnFichier "$@"
fi
}
#[ -d ~/CSVs ] || mkdir ~/CSVs
Dir="${1:-.}"
for dir in $Dir/*
do [ -d "$dir" ] && {
auMoinsUnFichier $dir/*
}
done #> ~/CSVs/results.csv |
Partager