Linux: Posso ligar vários destinos através de softlinks?

0

Tentativa de acabar com algo semelhante a isto:

$ ls -l  
lrwxrwxrwx  1 user group   4 Jun 28  2010 foo -> /home/bar  
lrwxrwxrwx  1 user group   4 Jun 29  2010 foo -> /etc/bar  

A intenção é poder mover um arquivo para foo & tem que ir para ambos os diretórios de destino por enquanto. O objetivo é eventualmente desvincular o link / home / bar após confirmar que não há problemas em mover os arquivos para / etc / bar. Estou restrito em que não posso alterar ou adicionar ao processo que move os arquivos.

    
por kds1398 04.06.2010 / 15:50

4 respostas

6

Não, um link pode resolver para um e apenas um arquivo / pasta. Mais especificamente, uma pasta não pode conter mais de um item com o mesmo nome, e o trabalho diretamente precisaria ter dois arquivos chamados "foo" para fazer o que você descreve.

    
por 04.06.2010 / 15:59
2

Um link só pode apontar para um arquivo, portanto, você não pode ter foo reference tanto em /home/bar quanto em /etc/bar . Dependendo da natureza do que você está tentando fazer, você poderá alcançar sua meta tendo foo -> /etc/bar e, depois, também definido /home/bar -> /etc/bar .

    
por 04.06.2010 / 18:41
1

Você pode usar um pipe nomeado e um processo em execução contínua que use tee para fazer a saída ir para vários arquivos.

$ mkfifo foo
$ while :; do tee -a /home/bar /etc/bar < foo > /dev/null 2>&1; done &
$ echo hello > foo
$ cat /home/bar
hello
$ cat /etc/bar
hello
    
por 05.06.2010 / 20:30
0

Sua melhor aposta provavelmente seria algum tipo de moint especial em foo . Eu duvido que você possa fazer isso apenas com os mecanismos fornecidos pelo kernel (um sindicato não cobre isso ...), mas deve ser relativamente fácil preparar algo com um fusível.

    
por 04.06.2010 / 21:51