我每天都需要在测试期间查看日志。这总是一个痛苦的 * ,因为我总是要进入日志目录,复制最后一个目录的名称,而不是复制目录中的最后一个日志文件的名称并拖尾它需要大量的时间,我想知道是否有任何命令的组合会自动执行此操作,因此我可以将其别名。
所以我知道选择我可以使用的最后一个文件/目录:
ls | tail -1
我知道要查看我可以使用的日志文件更新:
tail -f
但是有没有这样的命令组合:
感谢您的帮助。
答案 0 :(得分:2)
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相同)