06.06.2008, 19:04
общий
это ответ
Здравствуйте, Василий Литвиненко!
Чтобы найти все жесткие ссылки на файл, не узнавая предварительно его inode, можно создать скрипт (текст в приложении), который по-умолчанию ищет по в текущей папке и всех вложенных в нее папках жесткие ссылки на файл, указанный ей первым параметром (откуда был запущен). Вторым параметром можно задать папку в которой искать жесткие ссылки, например:
ls_all_hardlinks /home/user/file
ищет файл только в текущем каталоге и всех вложенных, а
ls_all_hardlinks /home/user/file /
ищет уже по всей файловой системе (ls_all_hardlinks - гипотетическое имя скрипта). Имейте в виду, что скрипт работает с правами пользователя от имени которого запущен, а все сообщения об ошибках перенаправляются в /dev/null (то есть Вы их не увидите). Поэтому, чтобы гарантированно найти все жесткие ссылки скрипт нужно запускать от имени привелигированного пользователя.
Не забудьте создав файл с текстом скрипта установить для него атрибут запуска, например: chmod a+x file. Также для удобства можно поместить файл скрипта в папку, которая указана в Вашей переменной окружения $PATH.
Желаю удачи!
Приложение:
#!/bin/bashif [ $2 ]; then DIR=$2;else DIR=$PWD;fifind $DIR -inum $(ls -i $1 | head -n 1 | awk --field-separator=‘ ‘ ‘{print $1}‘) -print 2> /dev/null #$string -print