Команда strings
ведет себя странно, по-видимому, она не прекращает запись в файл, даже если на диске недостаточно места. Или, может быть, я что-то упустил?
Я запускаю следующее:
# strings /dev/urandom > random.txt
это продолжало работать и не останавливалось даже после заполнения диска (обычная флешка).
затем, чтобы быть быстрее, я создал виртуальный диск и повторил ту же команду. это также не остановилось.
Я понимаю, что urandom
это не обычный файл, а также strings
выходные данные перенаправлены, однако в обоих вышеупомянутых случаях cat
команда сообщала об ошибке, когда не было больше места.
# cat /dev/urandom > random.txt
cat: write error: No space left on device
- Это нормальное поведение строк? Если так, то почему?
- Куда записываются данные после того, как больше не осталось места?
strace strings /dev/urandom > /dev/full
strings
реализацию из GNU binutils. Я имел в видуstrace
команду.Ответы:
Если GNU
cat
не может записать то, что прочитало, то выйдет с ошибкой :GNU
strings
, с другой стороны, не волнует , удалось ли ему успешно написать:Таким образом, все эти записи терпят неудачу, но
strings
продолжаются весело, пока не достигнут конца ввода, что никогда не будет.источник
strings
.