Unix pipe: найти | ls-s

3198
Frank Vilea

Я пытаюсь сделать ссылку на некоторые файлы php с помощью следующей команды:

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

Тем не менее, все символические ссылки не работают, потому что маленькая * не ссылается на полный путь, только само имя файла. Когда я пишу их в файл, используя:

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

Оно работает. Как я могу правильно передать это? Кроме того, как я могу сказать, что я не хочу никаких файлов ".php", которые содержат ".php ~"

0

1 ответ на вопрос

3
Oliver Charlesworth

Канал получает стандартный вывод из одного процесса и соединяет его со стандартным входом следующего процесса; это не имеет никакого смысла для того, что вы пытаетесь сделать ( lnничего не делает со стандартным вводом).

Вы, вероятно, хотите что-то вроде этого (не проверено):

find `pwd` -name "*.php" -execdir ln -s {} /home/frankv/www/bietroboter.de/symlinks \; 
Спасибо Оли. Что бы я сделал, если, скажем, все они записаны в файл, и я прочитал их с помощью cat test.txt? Frank Vilea 12 лет назад 0