J'effectue souvent accidentellement un fichier sur un fichier, alors que je voulais en faire moins.
Existe-t-il un moyen de créer un alias, ou une fonction, qui exécute ls sur un répertoire et moins sur un fichier.
J'effectue souvent accidentellement un fichier sur un fichier, alors que je voulais en faire moins.
Existe-t-il un moyen de créer un alias, ou une fonction, qui exécute ls sur un répertoire et moins sur un fichier.
Réponses:
La chose de base que vous voulez pourrait ressembler à quelque chose comme ça:
function my_less()
{
obj=$1
shift
test -d $obj && ls $obj $@
test -f $obj && less $obj $@
}
ensuite
my_less thing
fera un lsou un lessselon le type.
Le obj=$1saisit le premier argument de la fonction. Les shiftchangements les arguments restants « à gauche » et $@est la liste des arguments en cours.
Si vous voulez avoir un traitement rudimentaire des commutateurs, vous pouvez étendre cette fonction comme ceci:
function my_less()
{
switches=
obj=
while true
do
case $1 in
-*)
switches="$switches $1"
shift
;;
*)
obj=$1
shift
break
;;
esac
done
test -d $obj && ls $switches $obj $@
test -f $obj && less $switches $obj $@
}
Cela collectera tous les principaux commutateurs et définira objle premier non-commutateur. Cela fera souvent la mauvaise chose, mais il ne s'agit que d'une suggestion pour la prochaine étape.