How to remove trailing / in path in Bash?

I am writing a Bash script accepting input of a path from the user. I want to make the path have no trailing '/', such as '/path/to/dir' instead of '/path/to/dir/'.

However, as the input is from the user, the input could be '/path/to/dir'. My script is intended to handle this.

The question is: how to remove the trailing '/' if the input indeed has it? When the input has not trailing '/', it should be fine.

asked Dec 25, 2015 by anonymous

1 Answer

You may do in a straight forward way like check whether the last character is '/' and the path is a to a directory and remove that '/' from the string.

But here I provide another much easier method:

`dirname $path`/`basename $path`

will consistently gives the same path without the trailing '/' no matter whether the path is a directory or a file without or without the trailing '/'.

answered Jan 14, 2016 by Eric Z Ma (44,280 points)

Please log in or register to answer this question.

Copyright © SysTutorials. User contributions licensed under cc-wiki with attribution required.
Hosted on Dreamhost