Получите размер файла, substract два. Вы получаете $n
(как с n=$(wc -c < the-file)
) и выполненный
dd bs=1 seek="$n" < /dev/null of=the-file
Или если у Вас есть a truncate
это поддерживает отрицательные смещения (значение смещений от конца файла):
truncate -s -2 the-file
Или с ksh93
:
: 1<>; the-file >#((EOF-2))
( <>;
специальная форма <>
стандартный оператор перенаправления, который усекает файл после команды (здесь :
) возвраты, если это успешно выполнилось, >#((...))
искать оператор).
Или как я могу быть уверен в некоторых файлах, что они - дампы ядра для удаления их?
Использовать file
проверять это. Это печатает core file
если Ваш файл является базовым файлом: Например:
> file ./core.17511
./core.17511: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, from './main'
Это что man file
говорит:
файл тестирует каждый аргумент в попытке классифицировать его.
Распечатанный тип будет обычно содержать один из текста слов (файл содержит только печатающие символы и несколько символов общего контроля и вероятно безопасен читать на терминале ASCII), исполняемый файл (файл содержит результат компиляции программы в форме, понятной к некоторому ядру UNIX, или другой), или данные, означающие что-либо еще (данные являются обычно 'двоичными' или непечатаемыми). Исключениями являются известные форматы файлов (базовые файлы, архивы tar), которые, как известно, содержат двоичные данные.