2013-03-26 2 views
2

Я хочу выполнить команду find, но я хочу, чтобы она вернула цель вместо символической ссылки itselft.Как заставить find вернуть цель символической ссылки в hpux?

Это можно сделать в HP-UX?

Например, с:

security -> /dev/vg_irp_ist/rlv_IRP1_security

Я хочу вернуть /dev/vg_irp_ist/rlv_IRP1_security и не security.

+0

Попробуйте 'find -L'. С man-страницы, -L Следуйте символическим ссылкам – fedorqui

+0

, он дает информацию от цели, но отображаемое имя по-прежнему является символической ссылкой. –

+0

Ум, вам может потребоваться переместить вопрос в [su]. – fedorqui

ответ

3
#!/bin/ksh 
name=$(find /path/to/dir -type l -name whatever -exec ls -l {} \; |awk -F '>' '{print $2}') 

В HPUX отсутствует команда readlink. Если у вас установлен GNU coreutils, используйте readlink. В противном случае вы придерживаетесь вышеуказанного.

Это версия backwrds - с учетом фактического имени файла через ссылки, чтобы найти его. ОСТОРОЖНО относительных путей в ссылках: т. Е. ../../foo/filename

export filename="xz.exe" 
find . -type l -exec ls -l {} \; | 
    awk '{print $(NF)}') | grep -q "$filename" && echo $val 
+0

Я хочу найти по названию цели символической ссылки, а не по имени самой символической ссылки, знаете ли вы, как я могу ее изменить? –

+0

См. Править для ответа. Будьте осторожны относительно относительных путей. –

Смежные вопросы