Grab the filename in Unix out of full path
I am trying to get "abc.txt"
out of /this/is/could/be/any/path/abc.txt
using Unix command.
Note that /this/is/could/be/any/path
is dynamic.
Any idea?
Solution 1:
In bash
:
path=/this/is/could/be/any/path/abc.txt
If your path has spaces in it, wrap it in "
path="/this/is/could/be/any/path/a b c.txt"
Then to extract the path, use the basename function
file=$(basename "$path")
or
file=${path##*/}
Solution 2:
basename path
gives the file name at the end of path
Edit:
It is probably worth adding that a common pattern is to use back quotes around commands e.g. `basename ...`, so UNIX shells will execute the command and return its textual value.
So to assign the result of basename to a variable, use
x=`basename ...path...`
and $x will be the file name.