Eu realmente acho que isso não vale a pena quando você pode verificar antes de cat
ing algo, mas você pode configurar uma função em seu ~/.bashrc
para fazer isso:
cat(){
for i in "$@"
do
if file --mime "$i" | grep "charset=binary" >/dev/null
then
printf "File %s is binary, skipping\n" "$i" >&2
else
/bin/cat "$i"
fi
done
}
Isso executará file
para verificar se o tipo mime do arquivo é charset=binary
e, em caso afirmativo, irá ignorá-lo. Se esse teste falhar, o arquivo não será binário e /bin/cat
será chamado. Você pode usá-lo como faria com o gato normal:
$ cat /bin/bash /etc/os-release
File "/bin/bash" is binary, skipping
PRETTY_NAME="Linux Mint LMDE"
NAME="Linux Mint LMDE"
ID=linuxmint
ANSI_COLOR="1;31"