renommer filterf en ff
This commit is contained in:
parent
88e6b9b92f
commit
28487e0240
@ -12,13 +12,26 @@ function filter_arg() {
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
function filter_broken() {
|
||||||
|
local inverse="$1"; shift
|
||||||
|
while read arg; do
|
||||||
|
[ -L "$arg" ] || continue
|
||||||
|
if [ "$inverse" == 0 ]; then
|
||||||
|
[ -e "$arg" ] || echo "$arg"
|
||||||
|
else
|
||||||
|
[ -e "$arg" ] && echo "$arg"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
chdir=
|
chdir=
|
||||||
lsdirs=
|
lsdirs=
|
||||||
lsfiles=
|
lsfiles=
|
||||||
|
lsnames=
|
||||||
dir=
|
dir=
|
||||||
file=
|
file=
|
||||||
link=
|
link=
|
||||||
|
broken=
|
||||||
exists=
|
exists=
|
||||||
nonzero=
|
nonzero=
|
||||||
inverse=0
|
inverse=0
|
||||||
@ -28,9 +41,11 @@ args=(
|
|||||||
-C:,--chdir chdir= "changer le répertoire courant avant de lister les fichiers"
|
-C:,--chdir chdir= "changer le répertoire courant avant de lister les fichiers"
|
||||||
--lsdirs . "n'afficher que les répertoires du répertoire courant"
|
--lsdirs . "n'afficher que les répertoires du répertoire courant"
|
||||||
--lsfiles . "n'afficher que les fichiers du répertoire courant"
|
--lsfiles . "n'afficher que les fichiers du répertoire courant"
|
||||||
|
--lsnames . "n'afficher que les noms de fichier"
|
||||||
-d,--dir . "garder uniquement les répertoires"
|
-d,--dir . "garder uniquement les répertoires"
|
||||||
-f,--file . "garder uniquement les fichiers"
|
-f,--file . "garder uniquement les fichiers"
|
||||||
-L,--link . "garder uniquement les liens symboliques"
|
-L,--link . "garder uniquement les liens symboliques"
|
||||||
|
-b,--broken . "garder uniquement les liens symboliques cassés"
|
||||||
-e,--exists . "garder uniquement les fichiers/répertoires qui existent"
|
-e,--exists . "garder uniquement les fichiers/répertoires qui existent"
|
||||||
-s,--nonzero . "garder uniquement les fichiers ayant une taille non nulle"
|
-s,--nonzero . "garder uniquement les fichiers ayant une taille non nulle"
|
||||||
-n,--inverse inverse=1 "inverser le sens du filtre"
|
-n,--inverse inverse=1 "inverser le sens du filtre"
|
||||||
@ -43,16 +58,19 @@ fi
|
|||||||
|
|
||||||
if in_isatty; then
|
if in_isatty; then
|
||||||
# lister les fichiers
|
# lister les fichiers
|
||||||
[ -n "$lsdirs" -o -n "$lsfiles" ] || {
|
setx cwd=pwd
|
||||||
lsdirs=1
|
[ -n "$lsnames" ] && withpath= || withpath=1
|
||||||
lsfiles=1
|
|
||||||
}
|
|
||||||
if [ -n "$lsdirs" -a -n "$lsfiles" ]; then
|
if [ -n "$lsdirs" -a -n "$lsfiles" ]; then
|
||||||
cmd="{ $(qvals ls_dirs . "$@"); $(qvals ls_files . "$@"); }"
|
cmd="{
|
||||||
|
$(qvals ls_dirs ${withpath:+-p} "$cwd" "$@")
|
||||||
|
$(qvals ls_files ${withpath:+-p} "$cwd" "$@")
|
||||||
|
}"
|
||||||
elif [ -n "$lsdirs" ]; then
|
elif [ -n "$lsdirs" ]; then
|
||||||
cmd="$(qvals ls_dirs . "$@")"
|
cmd="$(qvals ls_dirs ${withpath:+-p} "$cwd" "$@")"
|
||||||
elif [ -n "$lsfiles" ]; then
|
elif [ -n "$lsfiles" ]; then
|
||||||
cmd="$(qvals ls_files . "$@")"
|
cmd="$(qvals ls_files ${withpath:+-p} "$cwd" "$@")"
|
||||||
|
else
|
||||||
|
cmd="$(qvals ls_all ${withpath:+-p} "$cwd" "$@")"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
cmd="cat"
|
cmd="cat"
|
||||||
@ -61,6 +79,7 @@ fi
|
|||||||
[ -n "$dir" ] && cmd="$cmd | filter_arg $inverse -d"
|
[ -n "$dir" ] && cmd="$cmd | filter_arg $inverse -d"
|
||||||
[ -n "$file" ] && cmd="$cmd | filter_arg $inverse -f"
|
[ -n "$file" ] && cmd="$cmd | filter_arg $inverse -f"
|
||||||
[ -n "$link" ] && cmd="$cmd | filter_arg $inverse -L"
|
[ -n "$link" ] && cmd="$cmd | filter_arg $inverse -L"
|
||||||
|
[ -n "$broken" ] && cmd="$cmd | filter_broken $inverse"
|
||||||
[ -n "$exists" ] && cmd="$cmd | filter_arg $inverse -e"
|
[ -n "$exists" ] && cmd="$cmd | filter_arg $inverse -e"
|
||||||
[ -n "$nonzero" ] && cmd="$cmd | filter_arg $inverse -s"
|
[ -n "$nonzero" ] && cmd="$cmd | filter_arg $inverse -s"
|
||||||
eval "$cmd"
|
eval "$cmd"
|
Loading…
x
Reference in New Issue
Block a user