Catty: A mini cat clone in Rust
4: use std::{env, error, fs::read_to_string, io, path::PathBuf, process};

Just a personal taste, but I would do

use std::{env, error, io, process};
use std::fs::read_to_string;
use std::path::PathBuf;


Yes, nested includes are nice and easy, but hard to extend. It's up to you.



35: let file_contents: Vec&lt;&amp;str&gt; = file_contents.split('\n').collect();

I would suggest using lines instead.

Also, you can omit &amp;str or change the line completly.

Either 

let file_contents: Vec&lt;_&gt; = file_contents.lines().collect();


or

let file_contents = file_contents.lines().collect::&lt;Vec&lt;_&gt;&gt;();




46/48: line.len() &gt; 0 / line.len() == 0

Replace that by !line.is_empty() and line.is_empty().



60: resolved_path = PathBuf::from(env::current_dir()?);

Remove PathBuf::from completly, because current_dir is already a PathBuf