Bash Script para obter o alvo simplista

Bash Script para obter o alvo simplista
Todos estamos familiarizados com os links simbólicos no Linux. Comumente conhecido como links simbólicos ou links suaves, um link simbólico é um arquivo específico que aponta para outro arquivo ou diretório em qualquer sistema de arquivos.

Neste curto tutorial, examinaremos o básico dos links simbólicos no Linux e criaremos um script simples para obter o alvo do link simbólico.

Tipos de links simbólicos

Existem principalmente dois tipos de links simbólicos, a saber:

Links difíceis:

Links rígidos são ponteiros diretos para um arquivo ou diretório em um sistema de arquivos. Os links difíceis são criáveis ​​apenas no mesmo sistema de arquivos que o arquivo de destino.

Links suaves:

Por outro lado, os links suaves são atalhos indiretos para um arquivo ou diretório e podem existir em qualquer lugar dentro de um sistema de arquivos. Os links suaves podem apontar para arquivo em um sistema de arquivos diferente.

Como criar links simbólicos

Para criar um link simbólico no Linux, usamos o comando ln. A execução do comando sem opções cria um link rígido para o arquivo de destino especificado.

A sintaxe geral para o comando ln é:

LN [Opções]

Como mencionado, o comando acima criará um link rígido para o arquivo de destino. Para criar um link simbólico suave, use a opção -s como:

ln -s [opção]

Exemplo 1

Vamos pegar a autenticação do arquivo.Faça login /var /log. Podemos criar um link para o arquivo em nosso diretório doméstico usando o comando como:

ln -s/var/log/auth.Log Auth.registro

O comando acima criará um link apontando para o arquivo principal. Podemos verificar isso usando o comando ls:

LS -LA

Exemplo #2

Você também pode realizar uma operação semelhante em um diretório. Para criar um link para /var /log, usamos o comando:

LN -s /var /log log

Da mesma forma, um link suave é criado apontando para o diretório de destino /var /log:

LS -LA

Como remover links simbólicos

Para remover um link simbólico, usamos o comando desvinculado seguido pelo caminho para o link simbólico para remover.

Por exemplo:

desvincular ~/log

OBSERVAÇÃO: Se você excluir o arquivo ou diretório de destino, remova o link simbólico, pois deixá -lo cria um link quebrado.

Como obter arquivo de destino ou diretório de alvo de link simbólico

Todo link simbólico aponta para um arquivo ou diretório de destino (a menos que quebrado). Para buscar o arquivo de destino/diretório de um symlink, usamos este comando que mostra o alvo de um symlink.

Por exemplo, para obter o alvo da autenticação.Arquivo de log que criamos em uma seção anterior, podemos fazer:

readlink Auth.registro
/val/log/auth.registro

Um script simples de bash para obter symblinks

Usando os conceitos acima, podemos montar um script simples de bash que aceita um caminho e lista todos os symblinks e seus arquivos ou diretórios de destino.

Um script simples como o fornecido abaixo deve fazer o truque.

#!/BIN/BASH
eco "forneça o diretório para avaliar:"
Leia Target_dir
CD $ Target_dir
links = $ (encontre . -maxDepth1 -Type l -ls | awk 'print $ 11')
para link em links
fazer
eco "$ link -> $ (readlink $ link)"
feito

O script começa pedindo ao usuário que o diretório avalie. Em seguida, o script vai para o diretório fornecido e encontra todos os links simbólicos dentro do diretório e passa a saída para Awk.

Awk analisa a saída e localiza apenas os links simbólicos e os salva para uma variável chamada links.

Em seguida, criamos um loop que agarra cada link nos links e avalia seu valor de destino usando o comando readlink.

Finalmente, ecoando o link simbólico e o diretório de destino. Abaixo está um exemplo de saída:

No exemplo acima, encontramos todos os links simbólicos no diretório /etc e imprimimos seu arquivo de destino ou diretório.

Conclusão

Neste tutorial, discutimos o básico do uso de links simbólicos no Linux. Em seguida, criamos um script simples para encontrar links simbólicos em um diretório especificado e mostrar sua fonte e destino.

Obrigado pela leitura!