是否可以更改尾部和头部的默认 COUNT 值?

mal*_*teo 2 tail head

less命令通过环境变量接受其默认值LESS,因此您可以

export LESS='-F -g -i -M -R -S -w -X -z-4'
Run Code Online (Sandbox Code Playgroud)

在您的会话开始时。

是否可以以类似的方式更改head和返回的默认行数tail

别名不是选项,因为它破坏了显式选项设置(例如在脚本中):

head -n 15 -5
Run Code Online (Sandbox Code Playgroud)

head至少在 GNU 和 busybox 中都失败并出现错误。

Sté*_*las 5

由于像-5, 之类的旧样式选项+5仅被识别为第一个参数,因此您可以执行以下操作:

head()
  case $1 in
    ([-+][0-9]*) command head "$@";;
    (*) command head -n 15 "$@"
  esac
Run Code Online (Sandbox Code Playgroud)

这将影响head当前 shell 调用的s。

如果你想影响所有的 head 调用,你需要把它写成一个脚本,它首先出现在你的$PATH:

mkdir -p ~/bin && cat > ~/bin/head << \EOF &&
#! /bin/sh -
case $1 in
  ([-+][0-9]*) ;;
  (*) set -- -n 15 "$@"
esac
exec /usr/bin/head "$@"
EOF
chmod +x ~/bin/head
PATH=~/bin:$PATH export PATH
Run Code Online (Sandbox Code Playgroud)