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 d
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.
You can use basename /this/is/could/be/any/path/abc.txt
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##*/}
You can use dirname command
$ dirname $path