diff --git a/src/uu/truncate/src/truncate.rs b/src/uu/truncate/src/truncate.rs index a45a4ac59..7a607cc1a 100644 --- a/src/uu/truncate/src/truncate.rs +++ b/src/uu/truncate/src/truncate.rs @@ -145,6 +145,7 @@ pub fn uu_app() -> Command { .long(options::SIZE) .required_unless_present(options::REFERENCE) .help(translate!("truncate-help-size")) + .allow_hyphen_values(true) .value_name("SIZE"), ) .arg( diff --git a/tests/by-util/test_truncate.rs b/tests/by-util/test_truncate.rs index 36ce92dc9..63c4442bd 100644 --- a/tests/by-util/test_truncate.rs +++ b/tests/by-util/test_truncate.rs @@ -386,6 +386,17 @@ fn test_underflow_relative_size() { assert!(at.read_bytes(FILE1).is_empty()); } +#[test] +fn test_negative_size_with_space() { + let (at, mut ucmd) = at_and_ucmd!(); + ucmd.args(&["-s", "-1", FILE1]) + .succeeds() + .no_stdout() + .no_stderr(); + assert!(at.file_exists(FILE1)); + assert!(at.read_bytes(FILE1).is_empty()); +} + #[cfg(not(windows))] #[test] fn test_fifo_error_size_only() {