uutils/coreutils
uu shred has a different probability distribution of overwrites from GNU shred
Ouverte
#11 611 ouverte le 3 avr. 2026
U - shredgood first issuereported-canonical-2
Métriques du dépôt
- Stars
- (23 893 étoiles)
- Métriques de merge PR
- (Merge moyen 5j 23h) (239 PRs mergées en 30 j)
Description
uu shred implements both algorithms, and the following test demonstrates that, for 1000 passes, uu shred's default algorithm has 246 multibyte overwrites, in contrast to 318 for GNU's.
#[test]
fn test_pattern_multicount() {
use std::{cell::RefCell, fs::OpenOptions, io::Write};
let mut f = OpenOptions::new().read(true).write(true).create(true).truncate(true).open("/tmp/uu_shred_test_pattern").unwrap();
// create_test_compatible_sequence requires that the random source consist of only 0x55's
f.write(&[0x55; 1024]).unwrap();
f.flush().unwrap();
let rng = Some(RefCell::new(f));
let n = 1000;
let a = crate::create_test_compatible_sequence(n, rng.as_ref()).unwrap();
let b = crate::create_standard_pass_sequence(n).unwrap();
use crate::{PassType,Pattern};
println!("a {:?}", a.iter().filter(|x| matches!(x, PassType::Pattern(Pattern::Multi(_)))).count());
println!("b {:?}", b.iter().filter(|x| matches!(x, PassType::Pattern(Pattern::Multi(_)))).count());
}