Что такое жесткие ссылки

Эх почему-то кажется хитрым. Возможно, вы могли бы написать что-то на C, но это решает проблему с помощью node.js :

.
#!/usr/bin/env node
'use strict';

const msg = process.argv[2] || process.env.ql_message;

if(!msg){
  console.error('quicklock: no message defined in ql_init_message.');
  process.exit(1);
}

console.log(msg);
process.stdin.resume().pipe(process.stdout);

в командной строке вы используете это так:

echo "bar" | initial_message "foo" | nc localhost 6969;

начальное _сообщение просто записывает одну вещь в стандартный вывод, а затем просто отправляет стандартный ввод в стандартный вывод в качестве прохода.

И в этом случае я определенно предположил бы, что «foo» всегда будет писаться перед «bar».

1
08.04.2020, 18:56
1 ответ

Жесткая ссылка на самом деле не является «ссылкой». Первая, вторая, третья, N-я жесткая ссылка на один и тот же индексный дескриптор файла равны друг другу. Нет никакой разницы между «исходной записью» и «жесткой ссылкой».

Скажем, если создать файл1, а затем добавить жесткую ссылку файл2 к тому же индексному узлу файла, то нет никакого способа узнать, какая ссылка на данный индексный дескриптор является исходной.

.

cryo@CryoNest:~ $ touch file1

cryo@CryoNest:~ $ ls -il file*
9505656 -rw-r--r-- 1 cryo cryo 0 кві  8 20:24 file1

cryo@CryoNest:~ $ ln file1 file2

cryo@CryoNest:~ $ ls -il file*
9505656 -rw-r--r-- 2 cryo cryo 0 кві  8 20:24 file1
9505656 -rw-r--r-- 2 cryo cryo 0 кві  8 20:24 file2

cryo@CryoNest:~ $ rm file1

cryo@CryoNest:~ $ ls -il file*
9505656 -rw-r--r-- 1 cryo cryo 0 кві  8 20:24 file2

cryo@CryoNest:~ $ ln file2 file1

cryo@CryoNest:~ $ ls -il file*
9505656 -rw-r--r-- 2 cryo cryo 0 кві  8 20:24 file1
9505656 -rw-r--r-- 2 cryo cryo 0 кві  8 20:24 file2

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

Обратите внимание на 3-е поле, это количество ссылок на инод. Это поле можно использовать для понимания «мистических» ситуаций, когда на самом деле «удаляют» файл (,одна из записей каталога жестких ссылок ), но использование пространства не меняется:)

Если кто-то хочет найти все жесткие ссылки данного файла, инструмент «найти» имеет опцию «-inum»

cryo@CryoNest:~ $ ln file1 tmp/file3

cryo@CryoNest:~ $ find. -maxdepth 2 -inum 9505656 -ls
  9505656  0 -rw-r--r--   2 cryo  cryo     0 кві  8 20:24./tmp/file3
  9505656  0 -rw-r--r--   2 cryo  cryo     0 кві  8 20:24./file1
2
28.04.2021, 23:18

Теги

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