Fish Shell:
Checking if a directory exists
How to:
Fish Shell uses the test
command to check file types and characteristics, including whether a target is a directory. Here’s a basic pattern for checking if a directory exists:
if test -d /path/to/dir
echo "Directory exists"
else
echo "Directory does not exist"
end
Sample Output:
Directory exists
For more streamlined file and directory operations, one might turn to external tools like fd
, though it’s more commonly used for finding files and directories rather than just checking for existence. However, combining it with Fish scripting can yield handy results:
set dir "/path/to/search"
if fd . $dir --type directory --max-depth 1 | grep -q $dir
echo "Directory exists"
else
echo "Directory does not exist"
end
This fd
example searches for the directory at a specified depth, and grep
checks for the match, making it versatile for nuanced checks. However, for the direct purpose of checking existence, sticking to Fish’s built-in test
is both efficient and straightforward.