Linux中用 pwd 命令来查看”当前工作目录“的完整路径。 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录。

在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置。

1.命令格式:

pwd [参数]

2. 命令功能:


pwd 代表的是‘Print Working Directory’(打印当前目录)。如它的名字那样,‘pwd’会打印出当前工作目录,或简单的来说就是当前用户所位于的目录。它会打印出以根目录 (/)为起点的完整目录名(绝对目录)


3. 常用参数:

一般情况下不带任何参数

参数

描述

-L

即逻辑路径logical,当目录为连接路径时,显示连接路径

-P

即物理路径physical,显示实际物理路径,而非使用连接(link)路径

如果同时使用了‘-L‘和‘-P‘,‘-L‘会有更高的优先级。如果没有指定参数,pwd会避开所有的软链接,也就是说会使用‘-P‘参数。

4. 常用示例

1. 查看pwd命令

命令:

man pwd

输出:

PWD(1)                           User Commands                          PWD(1)

NAME
pwd - print name of current/working directory

SYNOPSIS
pwd [OPTION]...

DESCRIPTION
Print the full filename of the current working directory.

-L, --logical
use PWD from environment, even if it contains symlinks

-P, --physical
avoid all symlinks

--help display this help and exit

--version
output version information and exit

If no option is specified, -P is assumed.
Manual page pwd(1) line 1 (press h for help or q to quit)

2. 显示当前目录所在路径.

命令:

pwd

输出:

hc@hc-virtual-machine:~/PycharmProjects/py3_test$ pwd
/home/hc/PycharmProjects/py3_test

目录结构如下:

hc@hc-virtual-machine:~/PycharmProjects$ tree -L 2
.
├── FreshOnline
│ ├── apps
│ ├── db_tools
│ ├── extra_apps
│ ├── FreshMartOnline
│ ├── manage.py
│ ├── media
│ ├── README.md
│ └── requirements.txt
├── FreshOnline_env
│ ├── bin
│ ├── include
│ ├── lib
│ ├── lib64 -> lib
│ ├── pip-selfcheck.json
│ ├── pyvenv.cfg
│ └── share
├── my_test
│ ├── 2018.log
│ ├── link2018 -> 2018.log
│ ├── ln2018
│ └── test
├── py3_test
│ ├── t1.py
│ └── venv
└── test
└── my_test -> /home/hc/PycharmProjects/my_test

说明:目录为连接路径时,pwd -P 显示出实际路径,而非使用连接(link)路径;pwd显示的是连接路径

示例如下:

PycharmProjects/test目录下有一个my_test连接文件,指向PycharmProjects/my_test目录,
进入test目录下的my_test目录,使用pwd,显示结果与pwd -L 一致,是逻辑(连接)路径,要查看实际物理路径则使用pwd -P

hc@hc-virtual-machine:~/PycharmProjects/test$ pwd
/home/hc/PycharmProjects/test
hc@hc-virtual-machine:~/PycharmProjects/test$ ll
总用量 8
drwxr-xr-x 2 hc hc 4096 10月 23 13:38 ./
drwxrwxr-x 7 hc hc 4096 10月 23 13:30 ../
lrwxrwxrwx 1 hc hc 32 10月 23 13:38 my_test -> /home/hc/PycharmProjects/my_test/
hc@hc-virtual-machine:~/PycharmProjects/test$ cd my_test
hc@hc-virtual-machine:~/PycharmProjects/test/my_test$ pwd
/home/hc/PycharmProjects/test/my_test
hc@hc-virtual-machine:~/PycharmProjects/test/my_test$ pwd -P
/home/hc/PycharmProjects/my_test
hc@hc-virtual-machine:~/PycharmProjects/test/my_test$ pwd -L
/home/hc/PycharmProjects/test/my_test

3. 多层连接文件时,显示所有连接文件最终指向的文件全路径

/root目录下面有个dir1目录,test连接文件指向dir1目录

/opt目录下面有一个test连接文件,指向/root/test连接文件

通过cd命令进入/opt/test

pwd默认,只显示连接文件的全路径

root@hc-virtual-machine:~# pwd
/root
root@hc-virtual-machine:~# ll
total 12
drwxr-xr-x 2 root root 4096 Apr 24 05:51 dir1
lrwxrwxrwx 1 root root 5 Apr 24 05:54 test -> dir1/
root@hc-virtual-machine:~# ll /opt/
total 20
drwx------ 16 sgl sgl 4096 Oct 17 2015 sgl
lrwxrwxrwx 1 root root 10 Apr 24 05:55 test -> /root/test
root@hc-virtual-machine:~# cd /opt/test/
root@hc-virtual-machine:~# pwd
/opt/test
root@hc-virtual-machine:~# pwd -P
/root/dir1

pwd -P 显示连接文件最终指向的文件的全路径。注意这里不是/root/test。