есть файл file.avi 10GB
надо заполнить место, занимаемое им, нулями.
единственное, что приходит в голову, использовать dd с чтением из /dev/zero и записью в этот файл. но можно ли быть уверенным, что писать будет в те же сектора на жестком диске или файл сократится до 0 байт и, когда пойдет запись в него, будет сделано новое выделение места?буду благодарен за любую идею
спасибо :)
> есть файл file.avi 10GB
> надо заполнить место, занимаемое им, нулями.
> единственное, что приходит в голову, использовать dd с чтением из /dev/zero и
> записью в этот файл. но можно ли быть уверенным, что писать
> будет в те же сектора на жестком диске или файл сократится
> до 0 байт и, когда пойдет запись в него, будет сделано
> новое выделение места?Нельзя быть уверенным
> буду благодарен за любую идеюrm -P, а потом dd
> спасибо :)
> rm -P, а потом ddмне бы только заполнить файл нулями, удалять нельзя. а если пересоздавать заново, то надо заранее озаботиться о сохранении всех прав (ntfs). тоже не знаю, как это сделать.
вообщем, вариант, в принципе, вполне рабочий, можно осилить, только лишние операции будут, а если учесть, что там много гигабайт, то это затянется. поэтому и хотелось просто "пробежаться" по файлу нулями и все.
> rm -P, а потом ddгм, кстати, у меня в rm нет такого ключа (-P). однако :( (Slackware)
сначала в нете почитал про этот ключ, а только потом попробовал у себя.
это из FreeBSD-P Overwrite regular files before deleting them. Files are
overwritten three times, first with the byte pattern 0xff,
then 0x00, and then 0xff again, before they are deleted.
ну или shred
> ну или shreddd if=/dev/zero of=/fail bs=1M count=500
ты это имел ввиду?
>> ну или shred
> dd if=/dev/zero of=/fail bs=1M count=500
> ты это имел ввиду?Надо полагать он имел в виду shred. Или wipe c параметром -R и др. Типа такого.
>>> ну или shred
>> dd if=/dev/zero of=/fail bs=1M count=500
>> ты это имел ввиду?
> Надо полагать он имел в виду shred. Или wipe c параметром -R
> и др. Типа такого.Нет-нет! Только dd, только харджор!
$ ./skhred
-rw-r--r-- 1 one one 6 Авг 17 11:10 file
0000000 31 0a 32 0a 33 0a
0000000 31 0a 00 0a 33 0a
0000000 31 00 00 0a 33 0a
0000000 31 00 00 0a 00 0a
0000000 31 00 00 00 00 0a
0000000 31 00 00 00 00 00
0000000 00 00 00 00 00 00
-rw-r--r-- 1 one one 6 Авг 17 11:10 file
$ ls -l skhred
-rwxr--r-- 1 one one 270 Авг 17 11:10 skhred
$ cat -n skhred
1 #!/bin/bash
2
3 FILE=file
4
5 seq 1 3 >$FILE
6 dmp() { od -t x1 $FILE |head -1; }
7 nol() { dd if=/dev/zero count=1 bs=1 seek=$1 conv=notrunc of=$FILE 2>/dev/null; }
8
9 ls -l $FILE
10 dmp
11 for byte in $(seq 0 $(( $(stat -c %s $FILE) -1 )) | shuf); do
12 nol $byte
13 dmp
14 done
15 ls -l $FILE
$ _
> ну или shredда! точно! благодарю!
в итоге:
shred --random-source=/dev/zero -n1 file.avi