目錄與路徑

2021-10-18 22:54:24 字數 4623 閱讀 1450

1.2 關於執行檔案路徑的變數:$path

linux的預設命令列模式(bash shell)具有檔案補齊功能,要常常利用 [tab] 按鍵來自動補齊目錄路徑

.

#代表此層目錄

..#代表上一層目錄

- #代表前乙個工作目錄

~ #代表家目錄(目前使用者身份所在的)

~account #代表account(乙個賬號名稱)這個使用者的家目錄

常見的處理目錄的命令

cd

#切換目錄(change directory)

pwd#顯示當前目錄(print working directory)

mkdir

#建立乙個新目錄(make directory)

rmdir

#刪除乙個空目錄(remove directory)

[dmtsai@study ~]$ su - #切換為root身份

[root@study ~]

cd[相對路徑或絕對路徑]

[root@study ~]

cd ~dmtsai #代表進入dmtsai這個使用者的家目錄,亦即/home/dmtsai

[root@study ~]

cd ~ #代表回到自己的家目錄,亦即/root這個目錄

[root@study ~]

cd#代表回到自己的家目錄

[root@study ~]

cd..

#表示回到當前目錄的上一層目錄,亦即 /root 的上層目錄,還是/root

[root@study ~]

cd - #表示回到剛才到過的目錄,這裡是/root

[root@study ~]

cd /var/spool/mail #絕對路徑

[root@study ~]

cd../postfix #相對路徑,這裡我們由/var/spool/mail變到/var/spool/postfix

用法:

[root@study ~]

pwd[-p]

範例1:

[root@study ~]

pwd/root

範例2:

[root@study ~]

cd /var/mail #注意,/var/mail 是乙個鏈結檔案

[root@study mail]

pwd/var/mail

[root@study mail]

pwd -p

/var/spool/mail

[root@study mail]

ls -ld /var/mail

lrwxrwxrwx 1 root root 10 may 4 17:51 /var/mail -> spool/mail

pwd 加 [-p] 與不加有區別,因為 /var/mail 是乙個鏈結檔案,鏈結到 /var/spool/mail,所以加上 [-p] 後,不會顯示鏈結檔案的路徑,而是顯示完整路徑

用法:

[root@study ~]

mkdir

[-mp] 目錄名稱

選項與引數:

-m : 設定檔案的許可權。直接設定,不使用預設許可權(umask)

-p :幫助你直接將所需要的目錄(包含上層目錄)遞迴建立

範例1:

請到 /tmp下面嘗試建立數個新目錄看看

[root@study ~]

cd /tmp

[root@study tmp]

mkdir

test

#建立名為test的新目錄

[root@study tmp]

mkdir test1/test2/test3/test4

mkdir: cannot create directory 'test1/test2/test3/test4' no such file or directory

# 不能建立的原因是因為要建立test4之前要建立它的上層,以此類推

[root@study tmp]

mkdir -p test1/test2/test3/test4

# 加入 -p 選項後,可以自行幫你建立多層目錄

範例2:

建立許可權為 drwx- -x- -x的目錄

[rwx] = 4+2+1=7

[- -x] = 0+0+1=1

[root@study tmp]

mkdir -m 711 test2

[root@study tmp]

ls -ld test* #列出所有包含test字元的目錄

drwxr-xr-x 2 root root 6 jun 4 19:03 test

drwxr-xr-x 3 root root 18 jun 4 19:04 test1

drwxr-xr-x 2 root root 6 jun 4 19:05 test2

如果不加 [-m] 選項來強制設定屬性,系統就會使用預設屬性(與umask有關)

用法:

[root@study ~]

rmdir

[-p] 目錄名稱

選項與引數: -p :連同上層"空的"目錄也一起刪除

範例1:

將於 mkdir 範例中建立的目錄 ( /tmp )刪除掉

[root@study tmp]

ls -ld test*

drwxr-xr-x 2 root root 6 jun 4 19:03 test

drwxr-xr-x 3 root root 18 jun 4 19:04 test1

drwxr-xr-x 2 root root 6 jun 4 19:05 test2

[root@study tmp]

rmdir

test

#刪除空目錄test

[root@study tmp]

rmdir test1 # 因為有內容,無法刪除

rmdir

: failed to remove 'test1':direcitory not empty

[root@study tmp]

rmdir -p test1/test2/test3/test4

[root@study tmp]

ls -ld test*

drwxr-xr-x 2 root root 6 jun 4 19:05 test2

# test 與 test1 被刪除了

# 使用 -p 選項,立刻可將test1/test2/test3/test4 一次刪除,不過要注意,mkdir僅能刪除空目錄

當我們執行乙個命令的時候,用 ls 來舉例,系統會依照path的設定去每個path定義的目錄下查詢檔案名為 ls (ls命令的絕對路徑為/bin/ls)的可執行檔案,如果在path定義的目錄中含有多個檔名為 ls 的可執行檔案,那麼先執行第乙個被找到的同名命令

範例1:

執行【echo $path】來看看到底有哪些目錄被定義了出來

echo有「顯示、列印」的意思

$表示後面接的是變數,所以會顯示出當前的path

[root@study ~]

echo

$path

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

[root@study ~]

exit

#退出 root身份,回到原賬號

[dmtsai@study ~]$ echo

$path

/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/dmtsai/.local/bin:/home/dmtsai/bin

# 在centos 7中 /bin 是鏈結到 /usr/bin 當中的

path(一定是大寫)這個變數的內容是由一堆目錄所組成的,每個目錄中間用冒號( :)隔開,每個目錄有順序之分。

仔細看輸出內容,你會發現無論是 root 還是 dmtsai 都有 /bin 或 /usr/bin 這個目錄在path變數內,所以能夠在任何地方執行 ls 來找到 /bin/ls 執行檔案

除了 $path 外,如果還要更明確地定義出變數地名稱,可以使用大括號 $來處理變數的呼叫

例如:如果想讓 root 在任何目錄均可執行 /root/ls ,那麼就將 /root 加入path當中即可

[root@study ~] path=

"$:/root"

路徑與目錄

1.相對路徑與絕對路徑 linux 中的目錄呈樹狀結構,帶有分支。假如需要在任意乙個目錄下變換到根目錄下的 etc,那麼應該使用 cd etc 命令,這就是所謂的絕對路徑,是從根目錄向下定址。如果使用 cd etc 呢?表示要切換到當前目錄下的 etc目錄中,情況就不一樣了。l 絕對路徑 路徑的寫法...

目錄與路徑

目錄與路徑 相對路徑的用途 相對路徑與絕對路徑由什麼了不起阿,喝,那可真是了不起。假設你寫了乙個軟體,這個軟體共需要三個目錄,分別是etc,bin,man這三個目錄,然而由於不同的人喜歡安裝在不同的目錄之下,假設甲安扎安裝的目錄是 usr local packages etc,usr local p...

Linux目錄與路徑

絕對路徑 正確度較好 相對路徑 目錄間切換簡便 特殊目錄 表示當前目錄 表示當前目錄的上一層目錄 表示當前的工作目錄 表示當前使用者身份所在的家目錄 count 表示count使用者的家目錄 根目錄的上層與根目錄是同乙個目錄。目錄指令 1.cd 變換目錄 change directory cd 直接...