Alias ​​dynamique Linux


0

Je suis très nouveau sur Linux. Je viens de trouver la commande alias qui est très utile car je dois souvent fouiller dans les fichiers journaux

J'ai donc besoin d'ouvrir régulièrement des fichiers texte, ils sont généralement stockés dans le format ... \ somename \ somename_yyyymmdd.log

comment créer un alias dynamique pouvant prendre le nom du dossier actuel en entrée ainsi que la date du jour pour créer une commande similaire? moins somename_20121024.log

Merci


Cela ne peut pas être fait avec des liens symboliques (= alias) uniquement, vous devez écrire un script shell pour cela (ou un script dans un autre langage de programmation). Jetez un coup d'oeil ici en.wikipedia.org/wiki/Symbolic_link et ici en.wikipedia.org/wiki/Shell_script
23tux

zshell utilise aussi des alias dynamiques, avec bash et d'autres, il remplira les variables d'alias lors de la connexion, avec zshell, il sera chargé à l'appel

Réponses:


1

La commande alias permet de créer des raccourcis pour les commandes émises régulièrement. Le shell Linux le plus couramment utilisé bashne prend pas en charge le développement de paramètres dans les alias, ce qui le rend un peu moins adapté à vos besoins. Ce que vous essayez de faire est mieux accompli avec une fonction. Celui-ci est en bash:

lesslog() {
   local dir=$1
   local mydate=${2:-$(date +%Y%m%d)}
   if [[ -f ${dir}/${dir}_${mydate}.log ]]; then
       less ${dir}/${dir}_${mydate}.log
   else
       echo "Could not find log file: ${dir}/${dir}_${mydate}.log"
   fi
}

Cette fonction cherchera le fichier de log dans le répertoire passé. Si vous ne transmettez pas un deuxième paramètre, la date du jour sera par défaut.


grand merci. cela ressemble exactement à ce que je cherchais

1

Si vous utilisez, Bashvous pouvez utiliser des fonctions dans votre ~/.bashrcpour cela. Par exemple:

function less_log() {
  less log-`date +%Y%m%d`
}
export -f less_log

export -fsignifie que vous exportez une fonction.


Merci. ces liens ont été très utiles car je suis très
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.