X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=lib%2Flogin_functions.sh;h=29bc3e250ce88d681c38ab2aa9580fbe6b629114;hb=909ece30d234990d57526c444117f4d3f6ab3100;hp=307bec6aeee664945ba37ca2384e8b9f70b1d657;hpb=9e4c43c083b19fa819575606e963ff2fdf71c155;p=khome.git diff --git a/lib/login_functions.sh b/lib/login_functions.sh index 307bec6..29bc3e2 100644 --- a/lib/login_functions.sh +++ b/lib/login_functions.sh @@ -15,6 +15,32 @@ tdu() { | cut -c 1-115 } +# Most-recently modified file system objects +recent() { + # Intentional non-quoting of the parameters, so that some can be ignored if + # not passed, rather than be passed to find as empty strings. + # NOTE that %T+ is a GNU extention. + find $@ -printf '%T@ %T+ %p\0' \ + | sort -z -k 1 -n -r \ + | head -n "$(stty size | awk 'NR == 1 {print $1 - 5}')" -z \ + | gawk -v RS='\0' ' + { + sub("^" $1 " +", "") # Remove epoch time + sub("+", " ") # Blank-out the default separator + sub("\\.[0-9]+", "") # Remove fractional seconds + print + }' + # gawk is able to split records on \0, while awk cannot. +} + +recent_dirs() { + recent "$1" -type d +} + +recent_files() { + recent "$1" -type f +} + pa_def_sink() { pactl info | awk '/^Default Sink:/ {print $3}' }