LN(1) | General Commands Manual | LN(1) |
ln - cria uma ligação simbólica entre arqvuios
ln [opções] origem
[destino]
ln [opções] origem... diretório
Opções POSIX: [-f]
Opções GNU (forma reduzida): [-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}] [--help] [--version] [--]
Existem dois conceitos de 'ligação'no Unix, usualmente nomeadas de ligação forte e ligação fraca. Uma ligação forte é exatamente um nome para o arquivo. (E um arquivo pode ter vários nomes. Aquilo só é apaguado do disco somente quando o último nome é removido. O número de nomes é dado por ls(1). Não havia coisa semelhante no nome 'original': todos os nome tem o mesmo status. Usualmente, mas não necessariamente, todos os nomes do arquivo encontrado no sistema de arquivos contém os mesmo dados.)
Uma ligação fraca (ou ligação simbólica, ou symlink) é um material totalmente diferente: é um pequeno arquivo especial que contém o nome de caminho. Assim, a ligação fraca pode apontar arquivos em diferentes sistemas de arquivos (talvez NFS montadas de diferentes máquinas), e não precisa de ponto para o arquivo existente atualmente. Quando acessado (com a chamada de sistema open(2) ou stat(2) , uma referência para o symlink é substituída pelo núcleo do sistema operacional com uma referência para o arquivo nomeado no nome de caminho. (De qualquer forma, com rm(1) ou unlink(2) a ligação é removida, não o arquivo que ela aponta. Estas são chamadas especiais de sistema lstat(2) e readlink(2) que lêem o status do symlink e para onde aponta o nome do arquivo. Para várias outras chamadas de sistema há um pouco de incerteza e variação entre sistemas operacionais fazem com que as operações atuem no próprio symlink, ou no arquivo apontado.
ln cria ligações entre arquivos. Por padrão, ele cria ligações fortes; com a opção -s , ele cria ligações simbólicas (ou 'fracas').
Se somente um arquivo é fornecido, a ligação daquele arquivo é feita dentro do diretório atual, o qual é, criado um link para aquele arquivo no diretório atual, com o nome igual para (o último componente sobre) o nome daquele arquivo. (Isto é uma extensão GNU.) De outra forma, se o último argumento é o nome de um diretório existente, ln deverá criar uma ligação para cada arquivo de origem mencionada naquele diretório, como o nome iqual ao (o último componente de) nome daquele arquivo de origem . (Veja a descrição da opção --no-dereference abaixo.) De outra forma, se somente dois arquivos são fornecidos, ele cria uma ligação nomeada destino para o arquivo de origem. Será um erro se o último argumento não for um diretório e mais que dois arquivos forem fornecidos.
Por padrão, ln não remove arquivos ou ligações simbólicas existentes. (Assim, é possível o seu uso para propósitos de fechamento: que só terá sucesso se destino já não exista.) Mas pode ser forçado a fazer assim com a opção -f.
Em implementações existentes, é possível criar ligações fortes para um diretório, isto pode ser feito somente pelo super-usuário. POSIX proíbe a chamada de sistema link(2) e o utilitário ln de criar ligações fortes para diretórios (mas não proíbe de criar ligações forte entre sistemas de arquivos diferentes).
Quando o destino é no diretório atual (e não um symlink para ele), não há ambigüidade. A ligação é criada naquele diretório. Mas quando o destino especificado é um synlink para um diretório, há dois modos para tratar o pedido do usuário. ln pode tratar o destino como um diretório normal e criar uma ligação para ele. Na outra interpretação, o destino pode ser visualizado não como diretório - e sim como uma symlink para ele. Neste caso, ln dever apaguar ou criar um backup daquele symlink antes de criar o novo link. O padrão é para se tratar o destino como um symlink para o diretório como se fosse um diretório.
As versões GNU de programas como cp, mv, ln, install e patch podem criar backup de sobre os arquivos que foram reescritos, alterados ou destruídos se isto é desejado. Aqueles arquivos de bakcup se desejados são indicado pela opção -b. Como eles deveriam ser nomeados é especificado pela opção de -V. No caso do nome do arquivo posterior é determinado para o nome de um arquivo estendido por um sufixo, este sufixo é especificado pela opção de -S.
Esta opção corresponde a variável do Emacs 'version-control'. Os MÉTODOS validos são (são aceitas abreviações únicas):
As variáveis LANG, LC_ALL, LC_CTYPE and LC_MESSAGES tem seu significado usual.
POSIX 1003.2. De qualquer forma, POSIX 1003.2 (1996) não cita as ligações fracas. Ligaçõe fracas foram introduzidas pelo BSD, e não ocorrem nas especificações do System V release 3 (e anteriores).
ls(1), rm(1), link(2), lstat(2), open(2), readlink(2), stat(2), unlink(2)
Esta página descreve como ln é encontrada no pacote Utilitários de Arquivos 4.0; outras versões podem ser um pouco diferente. Envie correções e adições para aeb@cwi.nl. Relatório de problemas no programa para fileutils-bugs@gnu.ai.mit.edu.
André L. Fassone Canova <lonelywolf@blv.com.br> (tradução) Ricardo C.O. Freitas <english.quest@best-service.com> (revisão)
11/1998 | Utilitários de Arquivos GNU 4.0 |