Linux shell中如何獲取當(dāng)前目錄
Linux shell中獲取當(dāng)前目錄
當(dāng)前目錄
每當(dāng)你在終端進(jìn)行操作時,你都會有一個當(dāng)前工作目錄。
使用pwd來判定當(dāng)前目錄在文件系統(tǒng)內(nèi)的確切位置。
[root@localhost ~]# pwd /root
在shell中也可以使用pwd來獲取當(dāng)前目錄,并賦值給變量。
#!/bin/bash CRTDIR=$(pwd)
工作目錄
獲取當(dāng)前執(zhí)行的腳本文件的父目錄。
workdir=$(cd $(dirname $0); pwd)
復(fù)雜點(diǎn)的工作目錄獲取
PRG="$0" while [ -h "$PRG" ] ; do ? ls=`ls -ld "$PRG"` ? link=`expr "$ls" : '.*-> \(.*\)$'` ? if expr "$link" : '/.*' > /dev/null; then ? ? PRG="$link" ? else ? ? PRG=`dirname "$PRG"`/"$link" ? fi done PRGDIR=$(cd $(dirname $PRG); pwd)
shell腳本常用語法——獲得當(dāng)前目錄
1.獲得shell腳本所在的絕對路徑
CURRENT_DIR=$(cd $(dirname $0); pwd)
或者
CURRENT_DIR=$(cd `dirname $0`; pwd)
執(zhí)行步驟解析:
dirname $0: 取得當(dāng)前執(zhí)行的腳本文件所在的目錄;cd: 進(jìn)入當(dāng)前工作目錄;pwd: 顯示當(dāng)前工作目錄;
將當(dāng)前工作目錄輸出給變量CURRENT_DIR。
2.獲得shell腳本所在目錄的父級目錄的絕對路徑
由于能1 獲得shell腳本所在的絕對路徑,那么同理,就可以獲得腳本所在目錄的父級目錄的絕對路徑。
PARENT_DIR=$(cd $(dirname $0);cd ..; pwd)
只是在pwd命令之前添加了cd ..到父級目錄。
注意:
$()與``作用一樣,用于shell命令的執(zhí)行。dirname: 顯示最后一個結(jié)點(diǎn)前的路徑;相對的,basename: 顯示最后一個結(jié)點(diǎn)的名稱。$0: 腳本的路徑名稱,包含腳本本身的名稱。
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
linux?中sed命令實(shí)現(xiàn)刪除文件的任意列(操作代碼)
這篇文章主要介紹了linux中sed命令實(shí)現(xiàn)刪除文件的任意列,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06
shell進(jìn)度條追蹤指令執(zhí)行時間的場景分析
這篇文章主要介紹了shell進(jìn)度條如何追蹤指令執(zhí)行時間,本文中的進(jìn)度條可以應(yīng)用于大部分場景。不用修改進(jìn)度條函數(shù)的任何代碼,就可以直接使用,特別適合那些可預(yù)估指令執(zhí)行時間的場景,需要的朋友可以參考下2022-06-06
利用linux的timerfd_create實(shí)現(xiàn)計時器示例分享
這篇文章主要介紹了利用linux的timerfd_create實(shí)現(xiàn)計時器示例,需要的朋友可以參考下2014-02-02

