Sometimes you may need to retrieve file name from a given path in shell script. In this article, we will look at how to get filename from path in shell script.
How to Get Filename from Path in Shell Script
Here are the steps to get filename from path in shell script.
1. Create Shell Script
Open terminal and run the following command to create empty shell script
$ sudo vi get_filename.sh
2. Add Shell Script
You can use basename command to get file name from full path. It removes directory and extension from file path. Here is an example.
#!/bin/bash input="/home/data.txt" # extract data.txt file_name="${input##*/}" # get .txt file_extension="${file_name##*.}" # get data file="${file_name%.*}" # print the different variables echo "Full input file : $input" echo "Filename only : $file_name" echo "File extension only: $file_extension" echo "First part of filename only: $file"
Save and exit the file. Let us look at the above code line by line. First we define shell script’s execution environment. We store the full file path in $input variable. Then we use various parameter expansion syntaxes to extract filename with extension, file extension and only first part of filename. You can read more about parameter expansion in shell scripts here.
3. Make Shell Script Executable
Run the following command to make it executable.
$ sudo chmod +x get_filename.sh
4. Run Shell Script
Run the following command to test your shell script
$ ./get_filename.sh Full input file : /home/data.txt Filename only : data.txt File extension only: txt First part of filename only: data
Also read:
Shell Script to Trim Whitespace
How to Disable HTTP TRACE Method in Apache
How to Switch User in Ubuntu Linux
How to Bring Background Process to Foreground in Linux
LS File Size in kb, Mb
Related posts:
Sreeram has more than 10 years of experience in web development, Python, Linux, SQL and database programming.