在path中输入last directory,在目录中输入tail last file

时间:2013-12-20 12:55:35

标签: bash shell command-line directory tail

我每天都需要在测试期间查看日志。这总是一个痛苦的 * ,因为我总是要进入日志目录,复制最后一个目录的名称,而不是复制目录中的最后一个日志文件的名称并拖尾它需要大量的时间,我想知道是否有任何命令的组合会自动执行此操作,因此我可以将其别名。

所以我知道选择我可以使用的最后一个文件/目录:

ls | tail -1

我知道要查看我可以使用的日志文件更新:

tail -f

但是有没有这样的命令组合:

  1. 选择日志目录中的最后一个目录
  2. 选择该目录中的最后一个.log文件
  3. “tail -f”是direcotry中的最后一个文件
  4. 感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

sort files by date reliably

list_date_sorted_ascending() {
    while IFS= read -r -d '' -u 9
    do
        printf '%q\0' "${REPLY#* }"
    done 9< <(find "$1" -mindepth 1 -maxdepth 1 -printf '%T@' -exec printf ' %s\0' {} \; | sort --general-numeric-sort --zero-terminated)
}

能够use head and tail on NUL-separated output

nul_terminated() {
    tr '\0\n' '\n\0' | "$@" | tr '\0\n' '\n\0'
}

把它放在一起:

tail -f "$(list_date_sorted_ascending /var/log | nul_terminated tail -n 1)"

答案 1 :(得分:0)

如果您当前的工作目录包含日志文件夹,您可以尝试:

dir=$(ls -dt * | sed q); tail -1 $dir/$(ls -t $dir | sed q)

sed q与头-1相同)