Unix pipe: find | ln -s

0

Eu estou tentando ligar alguns arquivos php usando o seguinte comando:

find 'pwd' -name "*.php" | ln -s * /home/frankv/www/bietroboter.de/symlinks

No entanto, todos os links simbólicos são quebrados porque o pouco * não faz referência ao caminho completo, apenas ao próprio nome do arquivo. Quando eu escrevo em um arquivo usando:

find 'pwd' -name "*.php" > test.txt

Funciona. Como posso canalizar corretamente? Além disso, como posso dizer que eu não quero nenhum arquivo ".php" que contenha ".php ~"

    
por Frank Vilea 02.12.2011 / 20:00

1 resposta

3

Um pipe tira o stdout de um processo e o conecta ao stdin do próximo processo; isso não faz sentido para o que você está tentando fazer ( ln não faz nada com stdin).

Você provavelmente quer algo assim (não testado):

find 'pwd' -name "*.php" -execdir ln -s {} /home/frankv/www/bietroboter.de/symlinks \;
    
por 02.12.2011 / 20:02