diff --git a/src/uu/shred/src/shred.rs b/src/uu/shred/src/shred.rs index 68db40719..8a9a755a1 100644 --- a/src/uu/shred/src/shred.rs +++ b/src/uu/shred/src/shred.rs @@ -376,8 +376,8 @@ fn get_size(size_str_opt: Option) -> Option { fn pass_name(pass_type: &PassType) -> String { match pass_type { PassType::Random => String::from("random"), - PassType::Pattern(Pattern::Single(byte)) => format!("{byte:x}{byte:x}{byte:x}"), - PassType::Pattern(Pattern::Multi([a, b, c])) => format!("{a:x}{b:x}{c:x}"), + PassType::Pattern(Pattern::Single(byte)) => format!("{byte:02x}{byte:02x}{byte:02x}"), + PassType::Pattern(Pattern::Multi([a, b, c])) => format!("{a:02x}{b:02x}{c:02x}"), } } diff --git a/tests/by-util/test_shred.rs b/tests/by-util/test_shred.rs index e9a26adbe..e73471117 100644 --- a/tests/by-util/test_shred.rs +++ b/tests/by-util/test_shred.rs @@ -209,6 +209,17 @@ fn test_shred_fail_no_perm() { .stderr_contains("Couldn't rename to"); } +#[test] +fn test_shred_verbose_pass_single_0_byte_name() { + let (at, mut ucmd) = at_and_ucmd!(); + let file = "foo"; + at.write(file, "non-empty"); + ucmd.arg("-vn200") + .arg(file) + .succeeds() + .stderr_contains("/200 (000000)...\n"); +} + #[test] fn test_shred_verbose_no_padding_1() { let (at, mut ucmd) = at_and_ucmd!();