Semicolon gives (). Watch out for the semicolon after the String.
Also note that {&String::from()} can't work because it means:
Make a string
Throw away the string at the }
Return a reference to the string that has just been destroyed
You'll need to return an owned value rather than a temporary borrow, or assign the string to a variable in a higher level scope and return reference to that longer lived variable.
I strongly recommend you just use String::from_utf8. Given that you're executing a system command, I'm sure there's no meaningful performance benefit to be gained from from_utf8_unchecked. unsafe should be a last resort.