Os nomes dos arquivos do dispositivo em /dev
variam entre as variantes do Unix. Existem alguns que você encontrará em todos os lugares, como /dev/tty
que significa o terminal atual. Parece que /dev/tty3a
é o nome da quarta porta serial em algumas variantes Unix, incluindo Solaris e SCO OpenServer. O equivalente do Linux seria /dev/ttyS3
. Então, ls|tee /dev/tty3a
duplica a saída de ls
para a quarta porta serial.
Se não houver nenhum dispositivo conectado à porta serial, você receberá um erro (“Erro de entrada / saída”). Se não houver um driver para a porta serial, você receberá um erro diferente (“No such device”). Se o nó do dispositivo não existir, você certamente obterá “Nenhum arquivo ou diretório”.
Se o nó do dispositivo existir, mas você não tiver permissão para acessá-lo, receberá o erro "Acesso negado". A menos que você esteja executando como root, ou há um terminal de hardware conectado a essa porta serial e você está logado nesse terminal, é provável que você não tenha permissão para acessar esse dispositivo.
Supondo que o dispositivo esteja presente, se você quiser acessá-lo como root, você precisa executar o comando tee
as root, por exemplo com
ls | sudo tee /dev/tty3a
Observe que sudo ls | tee /dev/tty3a
não funcionaria, porque isso só executa ls
como root, o comando tee
não é um argumento para sudo
e é executado como o usuário original. Neste comando, o pipe é criado pelo shell original e a chamada para sudo
constitui o lado esquerdo do pipe. Se você quisesse executar tanto ls
quanto tee
como root, você precisaria escrever sudo ls | sudo tee /dev/tty3a
(com a criação do pipe ainda no shell original). Se você quisesse executar os dois comandos como root e executar a configuração do pipe como root, seria necessário invocar um shell como root para configurar o pipe: sudo sh -c 'ls | tee /dev/tty3a'
¹ Portas seriais são numeradas de 0.