Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

dirname(3) [osx man page]

DIRNAME(3)						   BSD Library Functions Manual 						DIRNAME(3)

NAME
dirname -- extract the directory part of a pathname SYNOPSIS
#include <libgen.h> char * dirname(char *path); DESCRIPTION
The dirname() function is the converse of basename(3); it returns a pointer to the parent directory of the pathname pointed to by path. Any trailing '/' characters are not counted as part of the directory name. If path is a null pointer, the empty string, or contains no '/' char- acters, dirname() returns a pointer to the string ".", signifying the current directory. IMPLEMENTATION NOTES
The dirname() function returns a pointer to internal storage space allocated on the first call that will be overwritten by subsequent calls. Other vendor implementations of dirname() may modify the contents of the string passed to dirname(); if portability is desired, this should be taken into account when writing code which calls this function. LEGACY SYNOPSIS
#include <libgen.h> char * dirname(const char *path); In legacy mode, path will not be changed. RETURN VALUES
On successful completion, dirname() returns a pointer to the parent directory of path. If dirname() fails, a null pointer is returned and the global variable errno is set to indicate the error. ERRORS
The following error codes may be set in errno: [ENAMETOOLONG] The path component to be returned was larger than MAXPATHLEN. SEE ALSO
basename(1), dirname(1), basename(3), compat(5) STANDARDS
The dirname() function conforms to X/Open Portability Guide Issue 4, Version 2 (``XPG4.2''). HISTORY
The dirname() function first appeared in OpenBSD 2.2 and FreeBSD 4.2. AUTHORS
Todd C. Miller BSD
October 12, 2006 BSD

Check Out this Related Man Page

BASENAME(3)						   BSD Library Functions Manual 					       BASENAME(3)

NAME
basename -- extract the base portion of a pathname SYNOPSIS
#include <libgen.h> char * basename(const char *path); char * basename_r(const char *path, char *bname); DESCRIPTION
The basename() function returns the last component from the pathname pointed to by path, deleting any trailing '/' characters. If path con- sists entirely of '/' characters, a pointer to the string "/" is returned. If path is a null pointer or the empty string, a pointer to the string "." is returned. The basename_r() variation accepts a buffer of at least MAXPATHLEN bytes in which to store the resulting component. IMPLEMENTATION NOTES
The basename() function returns a pointer to internal storage space allocated on the first call that will be overwritten by subsequent calls. basename_r() is therefore preferred for threaded applications. RETURN VALUES
On successful completion, basename() and basename_r() return pointers to the last component of path. If they fail, a null pointer is returned and the global variable errno is set to indicate the error. ERRORS
The following error codes may be set in errno: [ENAMETOOLONG] The path component to be returned was larger than MAXPATHLEN. SEE ALSO
basename(1), dirname(1), dirname(3) STANDARDS
The basename() function conforms to X/Open Portability Guide Issue 4, Version 2 (``XPG4.2''). HISTORY
The basename() function first appeared in OpenBSD 2.2 and FreeBSD 4.2. AUTHORS
Todd C. Miller CAVEATS
basename() returns a pointer to internal static storage space that will be overwritten by subsequent calls. Other vendor implementations of basename() may modify the contents of the string passed to basename(); this should be taken into account when writing code which calls this function if portability is desired. BSD
March 31, 2010 BSD
Man Page

15 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

display "*"

Hi, I've a problem with display "*" character: I'd like to use a script which take a complete path of set of files or directories in argument and separate them into their "dirname" part and their "basename" part. It works nearly exept that if i want to display the result (dirname +... (5 Replies)
Discussion started by: jo_aze
5 Replies

2. Shell Programming and Scripting

Help with the syntax

export check=$(expandname $(dirname $(which $0))) (2 Replies)
Discussion started by: chandhar
2 Replies

3. Shell Programming and Scripting

dirname, save cut portion to variable, clean up

Hi guys, last cry for help for today. I appreciate the help so far. ok so I have a program that dumps a path into my script as a variable ($1) This path is an example /home/xbmc/sab_downloads/video/tv/grey's anatomy/season 3 So in order to search thetvdb.com for a show, I need to extract... (6 Replies)
Discussion started by: tret
6 Replies

4. Shell Programming and Scripting

Newbie problem with simple script to create a directory

script is: dirname= "$(date +%b%d)_$(date +%H%M)" mkdir $dirname should create a directory named Nov4_ Instead I get the following returned: root@dchs-pint-001:/=>./test1 ./test1: Nov04_0736: not found. Usage: mkdir Directory ... root@dchs-pint-001:/=> TOO easy, but what am I... (2 Replies)
Discussion started by: gwfay
2 Replies

5. Shell Programming and Scripting

geting the real path

Hi there, Is there any way to obtain a real path from a weird path. For example : /foo/../bar/ -> /bar/ /foo/. -> /foo/ Thanks in advance Santiago (5 Replies)
Discussion started by: chebarbudo
5 Replies

6. Shell Programming and Scripting

find & dirname:problems with white spaces in Directories

Hi all, my problem: (little extract from my bash-script) I want to move each file (.mov) from one directory (and many Subdirectories) to another directory (only one); after moving i want to create hardlinks to the old directories. Thatīs no problem, but now: source-directories... (4 Replies)
Discussion started by: tubian
4 Replies

7. Programming

basename and dirname changes the value of argument???

Hi I faced with some interesting behavior of basename and dirname functions from libgen.h: they changes the value of argument! Here is the declaration: char *basename(char *); char *dirname(char *);It makes some tiresome to use them... I am new to C and maybe I do something wrong, but to... (4 Replies)
Discussion started by: Sapfeer
4 Replies

8. Shell Programming and Scripting

Bash variable delayed expansion?

i write a batch file , here is the content. dirname='date +%Y-%m-%d' mkdir dirname but it doen's work, it just create a folder named date and +%Y-%m-%d. i have tried run the command seperately in the bash prompt. after the first sentence executed , i use $dirname to watch the value of... (4 Replies)
Discussion started by: premotheus
4 Replies

9. Shell Programming and Scripting

Execution Problems with the value is not store in a variable

#!/bin/bash filecount=0 dirname=path.log exec<$dirname while read line # line by line read source file name and stored in a veribale do sourcedirname=$line ( count=`ls $sourcedirname |wc -l` filecount=`expr $filecount + $count` echo $filecount ... (2 Replies)
Discussion started by: mnmonu
2 Replies

10. UNIX for Dummies Questions & Answers

$dirname ??????

Hi, okay, the following command was given to me in a script, but it's not working and there's little to no help on dirname. What is wrong with the following line? I'm just trying to save the current directory to use later in subsequent scripts. MYAPPDIR=$(dirname $(dirname $0)) Thanks. (2 Replies)
Discussion started by: rebazon
2 Replies

11. Shell Programming and Scripting

$0 doesn't have full directory path

I'm running AIX unix korn shell. If I echo $0, I only get the filename, it does not have the directory name also. So when I do: `dirname $0` it returns a . (meaning current directory). How get $0 to return the full path/filename? Do I need something in my .profile? Thank you. (8 Replies)
Discussion started by: sboxtops
8 Replies

12. Shell Programming and Scripting

about -w

-w "filename" is suppose to return 0 if the file got write permission and 1 if not right? for some reason... when i test it, it keep returning 1 even after i set full 777 permission to that file/directory? the directory will become /path/path2/path3 directory = `dirname... (9 Replies)
Discussion started by: Nick1097
9 Replies

13. Shell Programming and Scripting

How to get top level parent directory

Hi All, I have a directory like this: /u01/app/oracle/11gSE1/11gR203 How do i get the top level directory /u01 from this? Tried dirname and basename but dint help. I can this using echo $ORACLE_HOME | awk -F"/" '{print "/"$2}'. But I am trying to find out if there is a better way of doing it... (4 Replies)
Discussion started by: nilayasundar
4 Replies

14. UNIX for Beginners Questions & Answers

Bash beginner

Hello so I've stored some csv data to be read into variables like this Name,Team,Shop,Shoe etc,etc,etc,etc Code: sep="," { while IFS=$sep read Name Team Shop Shoe do count=1 dirname=$Name while do ((count++)) dirname="${Name}$count" (4 Replies)
Discussion started by: darklord173
4 Replies

15. UNIX for Beginners Questions & Answers

Bash Script

Code: File is read in from wrapper and declared file_name IFS="," sed 1d $file_name | while read Name Job Age Title do count=0 dirname=$Name while do ((count++)) dirname="${Name}$count" done echo "==================" echo "Name: $Name" ... (1 Reply)
Discussion started by: darklord173
1 Replies