uutils/coreutils

uu shred has a different probability distribution of overwrites from GNU shred

開放

#11,611 建立於 2026年4月3日

 (5 則留言) (0 個反應) (0 位負責人)Rust (2,003 個分叉)batch import
U - shredgood first issuereported-canonical-2

倉庫指標

星標
 (23,984 顆星)
PR 合併指標
 (PR 指標待抓取)

描述

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());
}

貢獻者指南