Как я выясняю то, что предотвращает связывание, монтируются от размонтирования?

Вы должны посмотреть, используя [11678]hexdump -C[11679] и найти байты вокруг него. Предположим, что UTF-8, то, что [11680]vi[11681] показывает как [11682][11683] (десятичная цифра 145, в тексте точка юникода не имеет смысла) будет два байта, 0xc2 и 0x91.

Это подразумевает, что ваши замены вообще не сработали, но если бы вы просто заменили 0x91 на 0x27, вы бы сделали UTF-8 недействительным (второй байт последовательности из двух байтов всегда имеет старший бит, т.е. >= 0x80). Это может усложнить ваш анализ, хотя [11684]vi[11685] должен показать это как [11686]?'[11687].

Тем не менее, я протестировал это и это работает:

Если [11688]$ARGV[0][11689] существует при ссылке на [11690][11691], perl вытаскивает это из стека аргументов и использует как путь к файлу для ввода (я нахожу, что короткие скрипты проще подправить и работать с ними, чем с одним Liners, BTW). Это накапливается в памяти (прекрасно, если файлы не массивные), в то время как [11692]perl -i[11693] переименовывает исходный файл, чтобы избежать редактирования на месте условий гонки (см. [11694]perldoc perlrun[11695]).

Таким образом, вы можете использовать:

2
28.11.2014, 22:45
1 ответ

Благодаря wurtel это стало очевидно:

Хотя и fuser, и lsof в том виде, как они используются в моем вопросе, показывают один и тот же процесс с использованием обеих точек монтирования, после того, как одна из этих команд скажет вам PID, запуск:

lsof -p $PID

действительно покажет, какая именно точка монтирования используется. Немного смазки - и все готово.

1
27.01.2020, 22:21

Теги

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