Обнаружение гибкой ссылки

Можно получить номер строки, где Вы хотите начать фильтровать и, чем фильтр он witn AWK.

В AWK НОМЕР означает рекордное число, по умолчанию это - конец строки (\n).

START_LINE=$(cat file_a.txt | grep -n .production | cut -f1 -d:)
cat file_a.txt | awk '{ if(NR < '$START_LINE' || NR > '$START_LINE' + 12) print $0; }'
2
05.01.2014, 01:47
2 ответа

К сожалению, нет. Гибкая ссылка (иначе символьная ссылка или символьная ссылка) места назначения не отслеживают факт, с которым они связаны. Не действительно возможный, также: символьные ссылки могут пересечь файловые системы, таким образом, ссылка могла быть в другой файловой системе, которая даже в настоящее время не монтируется.

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

2
27.01.2020, 22:14

Не возможно сделать это с гибкими ссылками, потому что в случае гибких ссылок цели не знают о существовании ссылок на них.

Однако, если Ваши целевые и исходные файлы находятся на том же разделе, Вы могли бы использовать жесткие ссылки вместо этого. С жесткими ссылками существует счетчик в inode, на который они указывают, который отслеживает то, сколько жестких ссылок (файлы) связывается с inode.

Вы видите тот счетчик при помощи stat команда (или системный вызов). Вывод похож на это, посмотрите на links поле, это показывает, сколько ссылок/файлов указывает на inode этого файла:

~ $ touch testfile1
~ $ ln testfile1 testfile2
~ $ stat testfile1
  File: ‘testfile1’
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d      Inode: 7062809     Links: 2
Access: (0644/-rw-r--r--)  Uid: ( 1000/     mst)   Gid: (  100/   users)
Access: 2014-01-04 10:19:27.899679948 +0300
Modify: 2014-01-04 10:19:27.899679948 +0300
Change: 2014-01-04 10:19:33.149679891 +0300
 Birth: -

Таким образом, прежде, чем удалить файл Вы могли проверить статистику его, если Links поле выше 1 должна быть другая жесткая ссылка на него. К сожалению, для нахождения второй жесткой ссылки на основе inode будет дорогой операцией поиска, таким образом, я буду надеяться, что у Вас есть некоторая схема именования для нахождения их быстрее.

0
27.01.2020, 22:14

Теги

Похожие вопросы