Skip to main content

basename and dirname


basename

basename is a command used to get the filename or the leaf directory name from a path given. basically it will select the last string which is prefixed by /.

For example:

>basename /x/y/z/abc.txt
abc.txt

The above command will bring output as abc.txt

>basename /x/y/z/
z

It will bring z as output

Please note , inside a script if we use basename $0 , it will bring the name of the script. It has many uses.

dirname

dirname will bring the path of the directory. ie the prefix for / for a leave directory name or file.

For example:

>dirname /x/y/z/abc.txt
/x/y/z

The above command will bring output as /x/y/z

>dirname /x/y/z/
/x/y

It will bring /x/y as output

Comments

Popular posts from this blog

UNIX : How to ignore lines with certain names

Sometimes we need to ignore multiple lines with certain words and get the list out of the file. usually it will be a log file to read . The below grep command can be used to ignore multiple words present in a text file. Lets say the file contain $ cat list.txt apple orange apple banana papaya Now we need to ignore line with orange , banana and papaya . So we can use the below grep command. $ cat list.txt | grep -Ev "orange|banana|papaya" apple apple It will ignore lines with the words in -v part of grep.

UNIX : unpack and pack using tar

Tarball or tar is a utility in linux to unpack or pack the files. Lets say we have a file name hello.tar.gz which is packed and compressed. To unpack the file use the below command > tar xvzf hello.tar.gz This is unpack the compressed tarball file to the directory hello in current location. To pack a list of files to a compressed tarball file , we can follow the below steps. Let say we have the following list of files in Hello directory. > cd Hello > ls helloworld.py README.txt Move back to parent directory and give the below command. > cd .. > tar zcvf hello.tar.gz Hello This will create the compressed tar file in the current location