Coreutils(或其他)`ls`:在管道传输时不要附加指示类型的符号

Coreutils(或其他)`ls`:在管道传输时不要附加指示类型的符号

有没有办法让 GNU coreutils ls(或任何其他开源)仅在输出通过管道传输时ls省略尾随符号(*对于可执行文件、目录等)?/

GNUls有一个--color[=WHEN]选项,接受auto在不通过管道输出时自动显示颜色,并在通过管道输出时省略颜色的控制序列。我正在寻找有关指示文件类型的尾随符号的相同行为。

答案1

ls想必您有一个无条件添加-F(或) 选项的别名--classify。我将通过创建一个包装函数来测试 stdout 是否是终端来解决这个问题;仅-F当输出是终端时才添加该选项。

function ls {
  if [ -t 1 ]
  then
    command ls -F "$@"
  else
    command ls "$@"
  fi
}

根据需要调整其他默认选项。

相关内容