Linux dinamik takma adı


0

Linux için çok yeniyim. Daha önce günlük dosyalarını taramak zorunda kaldığım için çok yararlı olan alias komutunu buldum.

Bu yüzden, genellikle genellikle depolanan metin dosyalarını açmam gerekiyor ... \ somename \ somename_yyyymmdd.log

Geçerli klasör adını giriş gibi alabileceği ve benzeri bir komut oluşturmak için geçerli tarihi alabilen dinamik bir diğer ad nasıl oluşturabilirim? daha az somename_20121024.log

Teşekkürler


Bu sadece sembolik linklerle (= alias) yapılamaz, bunun için bir kabuk betiği yazmanız gerekir (veya başka bir programlama dilinde bir betik yazmanız gerekir). Burada bir göz atın en.wikipedia.org/wiki/Symbolic_link ve burada en.wikipedia.org/wiki/Shell_script
23tux

zshell ayrıca bash ve diğerleri ile dinamik takma adlar kullanır, oturum açarken takma değişkenleri doldurur, zshell ile çağrıda yükler

Yanıtlar:


1

Alias ​​komutu, düzenli olarak verilen komutlar için kısayollar oluşturmak içindir. En yaygın kullanılan linux kabuğu, bashtakma adlar içindeki parametre genişlemesini desteklemez; bu da, amacınız için biraz daha az uygun olmasını sağlar. Yapmaya çalıştığınız şey, bir işlev kullanarak daha iyi başarılmış olmanızdır. Bu, içinde 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
}

Bu işlev, iletilen dizindeki log dosyasını arayacaktır. İkinci bir parametreyi geçmezseniz, bugünün tarihine kadar varsayılan olacaktır.


çok teşekkürler. Bu tam olarak aradığım gibi görünüyor

1

Eğer kullanıyorsanız Bashkullanabileceğiniz işlevleri Gözlerinde farklı ~/.bashrcbunun için. Örneğin:

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

export -fbir işlevi dışa aktardığınız anlamına gelir .


Teşekkürler. bu bağlantılar bu konuda çok yeni olduğumdan oldukça yardımcı
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.