From 41f217fd7631688deb1344ebf08056fbfa144ba7 Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Sat, 10 Feb 2024 15:05:39 +0400 Subject: [PATCH] =?UTF-8?q?am=C3=A9liorer=20ls=5F*?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bash/src/base.tools.sh | 75 +++++++++++++++++++++++++----------------- 1 file changed, 44 insertions(+), 31 deletions(-) diff --git a/bash/src/base.tools.sh b/bash/src/base.tools.sh index 481b22e..5b1ddd3 100644 --- a/bash/src/base.tools.sh +++ b/bash/src/base.tools.sh @@ -22,49 +22,62 @@ function __la_cmd() { function: ls_all 'Lister les fichiers ou répertoires du répertoire $1, un par ligne Les répertoires . et .. sont enlevés de la liste $1=un répertoire dont le contenu doit être listé -$2..@=un ensemble de patterns pour le listage' -function ls_all() { - local curdir="$(pwd)" - local b="${1:-.}"; shift +$2..@=un ensemble de patterns pour le listage - cd "$b" 2>/dev/null || return - eval "$(__la_cmd "$@")" | while read f; do - [ "$f" == "." -o "$f" == ".." ] && continue - recho "$f" - done - cd "$curdir" +Seuls les noms des fichiers sont listés. Utiliser l'\''option -p pour inclure +les chemins' +function ls_all() { + local withp f b + if [ "$1" == -p ]; then withp=1; shift; fi + b="${1:-.}"; shift + + ( + cd "$b" || exit + eval "$(__la_cmd "$@")" | while read f; do + [ "$f" == "." -o "$f" == ".." ] && continue + recho "${withp:+$b/}$f" + done + ) } function: ls_files 'Lister les fichiers du répertoire $1, un par ligne $1=un répertoire dont le contenu doit être listé. -$2..@=un ensemble de patterns pour le listage' -function ls_files() { - local f - local curdir="$(pwd)" - local b="${1:-.}"; shift +$2..@=un ensemble de patterns pour le listage - cd "$b" 2>/dev/null || return - eval "$(__la_cmd "$@")" | while read f; do - [ -f "$f" ] && recho "$f" - done - cd "$curdir" +Seuls les noms des fichiers sont listés. Utiliser l'\''option -p pour inclure +les chemins' +function ls_files() { + local withp f b + if [ "$1" == -p ]; then withp=1; shift; fi + b="${1:-.}"; shift + + ( + cd "$b" || exit + eval "$(__la_cmd "$@")" | while read f; do + [ -f "$f" ] && recho "${withp:+$b/}$f" + done + ) } function: ls_dirs 'Lister les répertoires du répertoire $1, un par ligne Les répertoires . et .. sont enlevés de la liste $1=un répertoire dont le contenu doit être listé. -$2..@=un ensemble de patterns pour le listage' -function ls_dirs() { - local f - local curdir="$(pwd)" - local b="${1:-.}"; shift +$2..@=un ensemble de patterns pour le listage - cd "$b" 2>/dev/null || return - eval "$(__la_cmd "$@")" | while read f; do - [ "$f" == "." -o "$f" == ".." ] && continue - [ -d "$f" ] && recho "$f" - done - cd "$curdir" +Seuls les noms des répertoires sont listés. Utiliser l'\''option -p pour +inclure les chemins' +function ls_dirs() { + local withp f b + if [ "$1" == -p ]; then withp=1; shift; fi + b="${1:-.}"; shift + + ( + cd "$b" || exit + eval "$(__la_cmd "$@")" | while read f; do + [ "$f" == "." -o "$f" == ".." ] && continue + [ -d "$f" ] && recho "${withp:+$b/}$f" + done + ) } function: quietgrep "tester la présence d'un pattern dans un fichier en mode silencieux"