Estações de trabalho on-line OnWorks Linux e Windows

Logotipo

Hospedagem online grátis para estações de trabalho

<Anterior | Conteúdo | Próxima>

Expressões de arquivo

As seguintes expressões são usadas para avaliar o status dos arquivos:


Tabela 27-1: Expressões de arquivo de teste


A expressão é verdadeira se:

A expressão é verdadeira se:

file1 -E se file2 arquivo1 e arquivo2 têm os mesmos números de inode (os dois

nomes de arquivos referem-se ao mesmo arquivo por meio de links físicos).


imagem

file1 -nt file2 o arquivo1 é mais recente que o arquivo2.


imagem

file1 -ot file2 o arquivo1 é mais antigo que o arquivo2.


imagem

-b lima lima existe e é um arquivo de bloco especial (dispositivo).


imagem

-c lima lima existe e é um arquivo de caractere especial (dispositivo).


imagem

-d lima lima existe e é um diretório.


imagem

-e lima lima existe.


imagem

-f lima lima existe e é um arquivo normal.


imagem

-g lima lima existe e é set-group-ID.


imagem

-G lima lima existe e pertence ao ID de grupo efetivo.


imagem

-k lima lima existe e tem seu "sticky bit" definido.


imagem


imagem

-L lima lima existe e é um link simbólico.


imagem

-O lima lima existe e pertence ao ID do usuário efetivo.


imagem

-p lima lima existe e é um pipe nomeado.


imagem

-r lima lima existe e é legível (tem permissão de leitura para o usuário efetivo).


imagem

-s lima lima existe e tem um comprimento maior que zero.


imagem

-S lima lima existe e é um soquete de rede.


imagem

-t fd fd é um descritor de arquivo direcionado de / para o terminal. Isso pode ser usado para determinar se a entrada / saída / erro padrão está sendo redirecionado.


imagem

-u lima lima existe e é setuid.


imagem

-w lima lima existe e é gravável (tem permissão de gravação para o usuário efetivo).


imagem

-x lima lima existe e é executável (tem permissão para executar / pesquisar para o usuário efetivo).


imagem


Aqui, temos um script que demonstra algumas das expressões de arquivo:



#! / Bin / bash


# test-file: Avalie o status de um arquivo FILE = ~ / .bashrc

if [-e "$ FILE"]; então

if [-f "$ FILE"]; então

echo "$ FILE é um arquivo normal."

fi

if [-d "$ FILE"]; então

echo "$ FILE é um diretório."

fi

if [-r "$ FILE"]; então

echo "$ FILE está legível."

fi

if [-w "$ FILE"]; então

echo "$ FILE é gravável."

fi

if [-x "$ FILE"]; então

echo "$ FILE é executável / pesquisável."

#! / Bin / bash


# test-file: Avalie o status de um arquivo FILE = ~ / .bashrc

if [-e "$ FILE"]; então

if [-f "$ FILE"]; então

echo "$ FILE é um arquivo normal."

fi

if [-d "$ FILE"]; então

echo "$ FILE é um diretório."

fi

if [-r "$ FILE"]; então

echo "$ FILE está legível."

fi

if [-w "$ FILE"]; então

echo "$ FILE é gravável."

fi

if [-x "$ FILE"]; então

echo "$ FILE é executável / pesquisável."


fi mais

echo "$ FILE não existe" saída 1

fi


saída

fi mais

echo "$ FILE não existe" saída 1

fi


saída


O script avalia o arquivo atribuído à constante ARQUIVO e exibe seus resultados conforme a avaliação é realizada. Há duas coisas interessantes a serem observadas sobre esse script. Primeiro, observe como o parâmetro $ FILE é citado nas expressões. Isso não é necessário para completar sintaticamente a expressão, mas é uma defesa contra o vazio do parâmetro. Se a expansão do parâmetro de $ FILE se resultasse em um valor vazio, causaria um erro (os operadores seriam interpretados como strings não nulas em vez de operadores). O uso de aspas ao redor do parâmetro garante que o operador seja sempre seguido por uma string, mesmo se a string estiver vazia. Em segundo lugar, observe a presença do saída comando próximo ao final do script. o saída comando aceita um único argumento opcional, que se torna o status de saída do script. Quando nenhum argumento é passado, o status de saída é padronizado para o status de saída do último comando executado. Usando saída desta forma, permite que o script indique falha se $ FILE expande-se para o nome de um arquivo inexistente. o saída o comando que aparece na última linha do script existe como uma formalidade. Quando um script “sai do fim” (chega ao fim do arquivo), ele termina com um status de saída do último comando executado.

Da mesma forma, as funções do shell podem retornar um status de saída, incluindo um argumento inteiro para o retorno comando. Se convertêssemos o script acima em uma função shell para incluí-lo em um programa maior, poderíamos substituir o saída comandos com retorno declarações e obter o comportamento desejado:



arquivo_teste() {


# test-file: Avalie o status de um arquivo FILE = ~ / .bashrc

if [-e "$ FILE"]; então

if [-f "$ FILE"]; então

echo "$ FILE é um arquivo normal."

fi

if [-d "$ FILE"]; então

echo "$ FILE é um diretório."

fi

if [-r "$ FILE"]; então

arquivo_teste() {


# test-file: Avalie o status de um arquivo FILE = ~ / .bashrc

if [-e "$ FILE"]; então

if [-f "$ FILE"]; então

echo "$ FILE é um arquivo normal."

fi

if [-d "$ FILE"]; então

echo "$ FILE é um diretório."

fi

if [-r "$ FILE"]; então


echo "$ FILE está legível."

fi

if [-w "$ FILE"]; então

echo "$ FILE é gravável."

fi

if [-x "$ FILE"]; então

echo "$ FILE é executável / pesquisável."

fi

outro

echo "$ FILE não existe" return 1

fi


}

echo "$ FILE está legível."

fi

if [-w "$ FILE"]; então

echo "$ FILE é gravável."

fi

if [-x "$ FILE"]; então

echo "$ FILE é executável / pesquisável."

fi

outro

echo "$ FILE não existe" return 1

fi


}


Top OS Cloud Computing na OnWorks: