开发者

Extract directory from path [duplicate]

This question already has answers here: Getting the parent of a directory in Bash (13 answers) Closed 1 year ago.

In my script I need the directory of the file I am working with. Fo开发者_如何学JAVAr example, the file="stuff/backup/file.zip". I need a way to get the string "stuff/backup/" from the variable $file.


dirname $file

is what you are looking for


dirname $file

will output

stuff/backup

which is the opposite of basename:

basename $file

would output

file.zip


Using ${file%/*} like suggested by Urvin/LuFFy is technically better since you won't rely on an external command. To get the basename in the same way you could do ${file##*/}. It's unnecessary to use an external command unless you need to.

file="/stuff/backup/file.zip"
filename=${1##*/}     # file.zip
directory=${1%/*}     # /stuff/backup

It would also be fully POSIX compliant this way. Hope it helps! :-)


For getting directorypath from the filepath:

file="stuff/backup/file.zip"
dirPath=${file%/*}/
echo ${dirPath}


Simply use $ dirname /home/~username/stuff/backup/file.zip

It will return /home/~username/stuff/backup/

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜