Get parent directory of running script
If your script is located in /var/www/dir/index.php
then the following would return:
dirname(__FILE__); // /var/www/dir
or
dirname( dirname(__FILE__) ); // /var/www
Edit
This is a technique used in many frameworks to determine relative paths from the app_root.
File structure:
/var/
www/
index.php
subdir/
library.php
index.php is my dispatcher/boostrap file that all requests are routed to:
define(ROOT_PATH, dirname(__FILE__) ); // /var/www
library.php is some file located an extra directory down and I need to determine the path relative to the app root (/var/www/).
$path_current = dirname( __FILE__ ); // /var/www/subdir
$path_relative = str_replace(ROOT_PATH, '', $path_current); // /subdir
There's probably a better way to calculate the relative path then str_replace()
but you get the idea.
Retrieve parent directory of script
How about using dirname
twice?
APP_ROOT="$(dirname "$(dirname "$(readlink -fm "$0")")")"
The quoting desaster is only necessary to guard against whitespace in paths. Otherwise it would be more pleasing to the eye:
APP_ROOT=$(dirname $(dirname $(readlink -fm $0)))
Get parent of current directory from Python script
Using os.path
To get the parent directory of the directory containing the script (regardless of the current working directory), you'll need to use __file__
.
Inside the script use os.path.abspath(__file__)
to obtain the absolute path of the script, and call os.path.dirname
twice:
from os.path import dirname, abspath
d = dirname(dirname(abspath(__file__))) # /home/kristina/desire-directory
Basically, you can walk up the directory tree by calling os.path.dirname
as many times as needed. Example:
In [4]: from os.path import dirname
In [5]: dirname('/home/kristina/desire-directory/scripts/script.py')
Out[5]: '/home/kristina/desire-directory/scripts'
In [6]: dirname(dirname('/home/kristina/desire-directory/scripts/script.py'))
Out[6]: '/home/kristina/desire-directory'
If you want to get the parent directory of the current working directory, use os.getcwd
:
import os
d = os.path.dirname(os.getcwd())
Using pathlib
You could also use the pathlib
module (available in Python 3.4 or newer).
Each pathlib.Path
instance have the parent
attribute referring to the parent directory, as well as the parents
attribute, which is a list of ancestors of the path. Path.resolve
may be used to obtain the absolute path. It also resolves all symlinks, but you may use Path.absolute
instead if that isn't a desired behaviour.
Path(__file__)
and Path()
represent the script path and the current working directory respectively, therefore in order to get the parent directory of the script directory (regardless of the current working directory) you would use
from pathlib import Path
# `path.parents[1]` is the same as `path.parent.parent`
d = Path(__file__).resolve().parents[1] # Path('/home/kristina/desire-directory')
and to get the parent directory of the current working directory
from pathlib import Path
d = Path().resolve().parent
Note that d
is a Path
instance, which isn't always handy. You can convert it to str
easily when you need it:
In [15]: str(d)
Out[15]: '/home/kristina/desire-directory'
How do I get the parent directory in Python?
Python 3.4
Use the pathlib
module.
from pathlib import Path
path = Path("/here/your/path/file.txt")
print(path.parent.absolute())
Old answer
Try this:
import os
print os.path.abspath(os.path.join(yourpath, os.pardir))
where yourpath
is the path you want the parent for.
Get parent directory of shell script's directory
Run dirname twice (nested).
~$ dirname $PWD
/home
~$ dirname `dirname $PWD`
/
~$
Getting the parent of a directory in Bash
dir=/home/smith/Desktop/Test
parentdir="$(dirname "$dir")"
Works if there is a trailing slash, too.
How to get the Parent's parent directory in Powershell?
Version for a directory
get-item
is your friendly helping hand here.
(get-item $scriptPath ).parent.parent
If you Want the string only
(get-item $scriptPath ).parent.parent.FullName
Version for a file
If $scriptPath
points to a file then you have to call Directory
property on it first, so the call would look like this
(get-item $scriptPath).Directory.Parent.Parent.FullName
Remarks
This will only work if $scriptPath
exists. Otherwise you have to use Split-Path
cmdlet.
Get Parent directory of a specific path in batch script
do not use variable PATH for this. %PATH% is a built-in variable used by the command prompt.
@echo off
set "_path=C:\SecondParent\FirstParent\testfile.ini"
for %%a in ("%_path%") do set "p_dir=%%~dpa"
echo %p_dir%
for %%a in (%p_dir:~0,-1%) do set "p2_dir=%%~dpa"
echo %p2_dir%
How to extract the parent folder in bash script?
Like this, using pre-defined variable PWD
:
value="$PWD"
echo "you are here :$value"
echo "the folder is: ${value##*/}"
echo "the parent folder is $(basename "${PWD%/*}")"
You can replace the last line with:
dir="${PWD%/*}"
echo "the parent folder is ${dir##*/}"
The backquote (`) is used in the old-style command substitution, e.g.
foo=`command`
The foo=$(command)
syntax is recommended instead. Backslash handling inside $() is less surprising, and $() is easier to nest. See http://mywiki.wooledge.org/BashFAQ/082
How to get just the name of the parent folder in the directory where a script is running in php?
The simplest way to do it:
basename(__DIR__);
As @mario sagely noted, this is only possible with PHP 5.3+, so if you're stuck with 5.2 or less ... well ... you should switch to a new host and stop using legacy software.
Related Topics
How to Switch from Post to Get in PHP Curl
PHP - Get Numeric Index of Associative Array
How to Get File Url Using Storage Facade in Laravel 5
PHP Errors Not Being Displayed in the Browser [Ubuntu 10.10]
How to Count the Numbers of Rows That a MySQL Query Returned
Function to Return Only Alpha-Numeric Characters from String
How to Write a Stored Procedure in PHPmyadmin
What Does Using a Single Pipe '|' in a Function Argument Do
PHP Flush That Works... Even in Nginx
How to Force Laravel Project to Use Https for All Routes
When Should I Use Stdclass and When Should I Use an Array in PHP Oo Code
How to Prevent Multiple Logins in PHP Website
Display Data from SQL Database into PHP/ HTML Table
How to Declare a Two Dimensional Array
What Do the Ent_Html5, Ent_Html401, ... Modifiers on HTML_Entity_Decode Do
Using Str_Split on a Utf-8 Encoded String