Introdução
Neste laboratório, você aprenderá como determinar se um arquivo no Linux é um link simbólico. Você explorará três métodos diferentes para alcançar este objetivo.
Primeiramente, você usará o comando test com a opção -L para verificar programaticamente o tipo de arquivo. Em seguida, você verificará as informações do link examinando a saída do comando ls -l. Finalmente, você aprenderá como resolver o arquivo ou diretório de destino para o qual um link simbólico aponta, usando o comando readlink.
Testar link simbólico com test -L
Nesta etapa, você aprenderá como testar se um arquivo é um link simbólico usando o comando test com a opção -L.
Um link simbólico (ou symlink) é um tipo especial de arquivo que aponta para outro arquivo ou diretório. Pense nele como um atalho no Windows. Quando você acessa um link simbólico, você está, na verdade, acessando o arquivo ou diretório para o qual ele aponta.
Primeiro, vamos criar um arquivo simples. Certifique-se de estar no diretório ~/project.
echo "This is the original file." > original_file.txt
Agora, vamos criar um link simbólico para original_file.txt. Vamos nomear o link simbólico my_symlink.
ln -s original_file.txt my_symlink
ln: O comando usado para criar links.-s: Esta opção diz aolnpara criar um link simbólico (em vez de um hard link).original_file.txt: O arquivo de destino para o qual o link simbólico apontará.my_symlink: O nome do link simbólico que estamos criando.
Agora, podemos usar o comando test para verificar se my_symlink é um link simbólico. O comando test é usado para verificar tipos de arquivos e comparar valores. Ele não produz saída diretamente, mas seu status de saída indica sucesso (0) ou falha (não-zero).
Podemos combinar test com echo para ver o resultado.
test -L my_symlink && echo "my_symlink is a symbolic link" || echo "my_symlink is NOT a symbolic link"
test -L my_symlink: Isso verifica semy_symlinké um link simbólico.&&: Este é um operador lógico AND. Se o comando antes de&&for bem-sucedido (status de saída 0), o comando após&&será executado.||: Este é um operador lógico OR. Se o comando antes de||falhar (status de saída não-zero), o comando após||será executado.
Como my_symlink é de fato um link simbólico, a saída deve ser:
my_symlink is a symbolic link
Agora, vamos testar um arquivo regular, como original_file.txt:
test -L original_file.txt && echo "original_file.txt is a symbolic link" || echo "original_file.txt is NOT a symbolic link"
A saída deve ser:
original_file.txt is NOT a symbolic link
Isso confirma que test -L identifica corretamente os links simbólicos.
Verificar link com a saída de ls -l
Nesta etapa, você aprenderá como identificar links simbólicos e seus destinos usando o comando ls -l.
O comando ls é usado para listar arquivos e diretórios. A opção -l fornece um formato de "lista longa", que inclui informações detalhadas sobre cada arquivo, como permissões, propriedade, tamanho e tempo de modificação.
Quando você usa ls -l em um link simbólico, ele exibe o próprio link e também mostra para onde ele aponta.
Certifique-se de estar no diretório ~/project onde você criou original_file.txt e my_symlink na etapa anterior.
Agora, execute o comando ls -l:
ls -l
Você deve ver uma saída semelhante a esta:
total 4
-rw-rw-r-- 1 labex labex 25 Feb 28 10:00 original_file.txt
lrwxrwxrwx 1 labex labex 15 Feb 28 10:00 my_symlink -> original_file.txt
Vamos analisar a saída para my_symlink:
- O primeiro caractere
lindica que este é um link simbólico. Para um arquivo regular, seria-. - As permissões (
rwxrwxrwx) são frequentemente mostradas como permissões completas para links simbólicos, mas as permissões reais são determinadas pelo arquivo de destino. - A contagem de links é tipicamente
1para um link simbólico. - O proprietário e o grupo são
labex. - O tamanho (
15) é o número de caracteres no caminho de destino (original_file.txt). - O timestamp é o tempo de criação ou modificação do próprio link simbólico.
my_symlink: O nome do link simbólico.-> original_file.txt: Esta parte mostra claramente quemy_symlinkaponta paraoriginal_file.txt.
Compare isso com a saída para original_file.txt:
- O primeiro caractere
-indica que este é um arquivo regular. - As permissões (
rw-rw-r--) mostram quem pode ler, escrever e executar o arquivo. - A contagem de links (
1) indica quantos hard links apontam para os dados deste arquivo. - O tamanho (
25) é o tamanho real do conteúdo do arquivo em bytes.
Usar ls -l é uma maneira muito comum de identificar rapidamente links simbólicos e ver para onde eles estão apontando.
Resolver destino do link usando readlink
Nesta etapa, você aprenderá como usar o comando readlink para encontrar o destino de um link simbólico.
Embora ls -l seja ótimo para uma visão geral visual, o comando readlink é projetado especificamente para resolver links simbólicos e imprimir seu caminho de destino. Isso é particularmente útil em scripts ou quando você precisa apenas do caminho de destino sem outras informações do arquivo.
Certifique-se de estar no diretório ~/project.
Use o comando readlink no link simbólico my_symlink que você criou nas etapas anteriores:
readlink my_symlink
A saída será o caminho para o qual o link simbólico aponta:
original_file.txt
Isso confirma que my_symlink está realmente apontando para original_file.txt.
O comando readlink tem uma opção útil, -f, que segue recursivamente todos os links simbólicos e os resolve para o caminho absoluto do destino final. Isso é útil se você tiver uma cadeia de links simbólicos.
Vamos criar outro link simbólico que aponte para my_symlink:
ln -s my_symlink another_link
Agora, se você usar readlink em another_link sem a opção -f, ele mostrará o destino imediato:
readlink another_link
Saída:
my_symlink
Mas se você usar readlink -f em another_link, ele seguirá a cadeia (another_link -> my_symlink -> original_file.txt) e fornecerá o caminho absoluto do destino final:
readlink -f another_link
Saída:
/home/labex/project/original_file.txt
Isso mostra o caminho completo para o arquivo original. O comando readlink -f é muito poderoso para encontrar o destino final de um link, mesmo que ele esteja aninhado dentro de outros links.
Você agora aprendeu três maneiras de trabalhar com links simbólicos: usando test -L para verificar se um arquivo é um link, usando ls -l para ver detalhes e destinos do link e usando readlink para resolver o caminho de destino.
Resumo
Neste laboratório, você aprendeu como verificar se um arquivo é um link simbólico no Linux. Você primeiro criou um arquivo regular e um link simbólico apontando para ele. Em seguida, você usou o comando test com a opção -L para determinar programaticamente se um determinado arquivo é um link simbólico, observando como seu status de saída pode ser usado com operadores lógicos (&& e ||) para exibir um resultado.
Você também aprendeu como verificar visualmente um link simbólico usando o comando ls -l, que exibe um 'l' no início do campo de permissões e mostra o destino do link. Por fim, você explorou o comando readlink para resolver o caminho de destino de um link simbólico, compreendendo sua utilidade para scripting e automação.



