精华内容
下载资源
问答
  • 在linux中pwd命令表示
    2021-05-10 07:31:53

    pwd 显示当前目录

    -L, --logical

    显示当前目录

    -P, --physical

    显示当前目录的实际物理地址

    --help  帮助

    --version  版本

    例:

    复制代码

    代码如下:

    [root@rudder home]# pwd #显示当前目录

    /home

    [root@web mail]# pwd -P #目录是软连接,显示实际物理地址

    /var/spool/mail

    [root@web mail]# pwd -L #-L显示,逻辑地址

    /var/mail

    dirs:显示目录堆叠中的记录

    语  法:dirs [-clpv] [+N] [-N]

    参  数:

    +n 以当前目录为准,显示从左边算起第n笔的目录。

    -n 以当前目录为准,显示从右边算起第n笔的目录。

    -l 显示目录完整的记录。

    例1

    复制代码

    代码如下:

    [root@rudder home]# dirs

    /home

    例2

    复制代码

    代码如下:

    [root@localhost zhangy]# dirs #显示目录栈

    /home/zhangy /usr

    [root@localhost zhangy]# dirs -1

    /home/zhangy

    [root@localhost zhangy]# dirs +1

    /usr

    更多相关内容
  • 常见Linux命令pwd实现

    千次阅读 2021-08-21 23:00:16
    使用 Linux 命令行的人来说,pwd命令是非常有用的,执行 pwd 命令可立刻得知您目前所在的工作目录的绝对路径名称。 认识pwd命令 顾名思义,pwd命令打印当前工作目录或简单的目录用户,目前。 它使用从根 (/) 开始的...

    使用 Linux 命令行的人来说,pwd命令是非常有用的,执行 pwd 命令可立刻得知您目前所在的工作目录的绝对路径名称。

    认识pwd命令

    顾名思义,pwd命令打印当前工作目录或简单的目录用户,目前。 它使用从根 (/) 开始的完整路径打印当前目录名称。 此命令内置于 shell 命令中。

    对于内置命令就是shell当做自带的,因为shell当中自己要进行管理,那么就需要一些命令进行管理,不同的shell肯定有不同的shell命令。

    我们用type命令就可以看到其的类型,内置shell命令其实就是bash当中内部的命令,就好比我们一个软件内部的嵌套的不同的功能一样;

    在这里插入图片描述

    pwd 的基本语法:

    pwd [OPTION]

    选项 :

    -L (logical) 目录连接链接时,输出连接路径
    -P (physical) 输出物理路径

    使用默认方式,用 pwd 命令查看默认工作目录的完整路径

    在这里插入图片描述
    使用pwd -P 显示出实际路径

    在这里插入图片描述
    目录连接链接时,pwd显示的是连接路径;pwd -P 显示出实际路径,而非使用连接(link)路径;

    在这里插入图片描述

    POSIX 要求默认值为 -L,但大多数脚本都需要 -P。当前外壳默认为 -L,而独立时
    pwd 实现默认为 -P。

    最简单的pwd命令实现

    实现pwd真的太简单了,只要在程序中使用getcwd()函数就可以实现获得绝对路径的功能了。

    #include <stdlib.h>
    #include <unistd.h>//getcwd
    #include <stdio.h>
    
    int main(int argc, char **argv)
    {
        char *wd =getcwd(NULL, 0);
    
        if (NULL == wd) {
            printf("Get cerrent working directory fail.\n");
            exit(-1);
        } else {
            printf("%s\n", wd);
        }
    
        return 0;
    }
    
    

    编译运行:

    在这里插入图片描述

    上面其实已经实现了pwd的功能,但这显然只能实现其功能,而不能了解其工作原理;我们接着往下来!

    快速理解inode

    在一个文件系统中,一个inode代表一个文件,并使用一个整数值来表示该inode,里面包含了与该文件有关的一些信息。

    inode包含很多的文件元信息,但不包含文件名,利用stat命令可以查看一个文件更加详细的inode信息,包括inode编号,占用的块数量,块大小,硬链接个数,atime, mtime, ctime

    在这里插入图片描述

    总之,除了文件名以外的所有文件信息,都存在inode之中。

    Linux中的目录

    Linux文件系统是目录和文件组成的一种层次结构,目录的起点称为根(root),其名字是一个字符 / 。

    在作为路径使用时, 根目录 / 是一个绝对路径,而Linux中也有一些相对路径可用,比如 . 或 ./ 表示当前目录、 … 或 …/ 表示上一级目录、 ~ 或 ~/ 表示当前用户的主目录(家目录)。

    在Linux目录中,每个名字有一个inode number,inode number指出了存储数据的硬盘空间的位置。通过ls -i看到名字和inode对应关系。

    在这里插入图片描述

    综上,Linux中,一个文件(包括目录)的文件名,及文件名与inode的对应关系,都是由包含该文件的目录所描述的。

    pwd实现

    static void file_name_free(struct file_name *p)
    {
    	free (p->buf);
    	free (p);
    }
    
    static struct file_name *file_name_init (void)
    {
    	struct file_name *p = (struct file_name *)malloc (sizeof *p);
    
    	/* 从大于 PATH_MAX 的缓冲区开始,但要注意系统
    其中 PATH_MAX 非常大——例如,INT_MAX。  */
    	p->n_alloc = MIN (2 * PATH_MAX, 32 * 1024);
    
    	p->buf = (char *)malloc (p->n_alloc);
    	p->start = p->buf + (p->n_alloc - 1);
    	p->start[0] = '\0';
    	return p;
    }
    
    
    
    /* 将长度为 S_LEN 的名称 S 附加到不断增长的文件名 P 之前。  */
    static void file_name_prepend (struct file_name *p, char const *s, size_t s_len)
    {
    	size_t n_free = p->start - p->buf;
    	if (n_free < 1 + s_len)
    	{
    		size_t half = p->n_alloc + 1 + s_len;
    		char *q = (char *)calloc (2, half);
    		size_t n_used = p->n_alloc - n_free;
    		p->start = q + 2 * half - n_used;
    		memcpy (p->start, p->buf + n_free, n_used);
    		free (p->buf);
    		p->buf = q;
    		p->n_alloc = 2 * half;
    	}
    
    	p->start -= 1 + s_len;
    	p->start[0] = '/';
    	memcpy (p->start + 1, s, s_len);
    }
    
    /* 返回一个由 N 个 '/' 分隔的“..”组件组成的字符串(malloc'd)。  */
    static char *nth_parent(size_t n)
    {
    	char *buf = (char *)calloc(3, n);
    	char *p = buf;
    
    	for (size_t i = 0; i < n; i++)
    	{
    		memcpy (p, "../", 3);
    		p += 3;
    	}
    	p[-1] = '\0';
    	return buf;
    }
    
    
    static inline bool dot_or_dotdot (char const *file_name)
    {
    	if (file_name[0] == '.')
    	{
    		char sep = file_name[(file_name[1] == '.') + 1];
    		return (! sep || ISSLASH (sep));
    	}
    	else
    		return false;
    }
    
    /* readdir 的包装器,以便调用者看不到 '.' 的条目。 或“……”。  */
    static inline struct dirent const *readdir_ignoring_dot_and_dotdot (DIR *dirp)
    {
    	while (1)
    	{
    		struct dirent const *dp = readdir(dirp);
    		if (dp == NULL || ! dot_or_dotdot(dp->d_name))
    			return dp;
    	}
    }
    
    
    static void find_dir_entry (struct stat *dot_sb, struct file_name *file_name,
                    size_t parent_height)
    {
    	DIR *dirp;
    	int fd;
    	struct stat parent_sb;
    	bool use_lstat;
    	bool found;
    
    	dirp = opendir("..");
    	if (dirp == NULL)
    		printf("cannot open directory %s\n",strdup(nth_parent(parent_height)));
    
    	fd = dirfd (dirp);
    /*chdir()这个系统调用,是改变当前程序的工作目录,不是改变bash的工作目录*/	
    	if ((0 <= fd ? fchdir(fd) : chdir("..")) < 0)
    		printf("failed to chdir to %s\n",strdup(nth_parent(parent_height)));
    
    	if ((0 <= fd ? fstat(fd, &parent_sb) : stat(".", &parent_sb)) < 0)
    		printf("failed to stat %s\n",strdup(nth_parent(parent_height)));
    
    
    	/*如果父目录和子目录在不同的设备上,那么我们
    不能依赖 d_ino 来获取有用的 i-node 编号; 请改用 lstat。  */
    	use_lstat = (parent_sb.st_dev != dot_sb->st_dev);
    
    	found = false;
    	while (1)
    	{
    		struct dirent const *dp;
    		struct stat ent_sb;
    		unsigned long long int ino = 0;
    
    		errno = 0;
    		if ((dp = readdir_ignoring_dot_and_dotdot (dirp)) == NULL)
    		{
    			if (errno)
    			{
    				/* 在 closedir 调用中保存/恢复 errno。   */
    				int e = errno;
    				closedir (dirp);
    				errno = e;
    
    				/* 安排在退出此循环后进行诊断。   */
    				dirp = NULL;
    			}
    			break;
    		}
    
    		ino = dp->d_ino;
    
    		if (ino == NOT_AN_INODE_NUMBER || use_lstat)
    		{
    			if (lstat (dp->d_name, &ent_sb) < 0)
    			{
    				/* 跳过我们无法统计的任何条目。  */
    				continue;
    			}
    			ino = ent_sb.st_ino;
    		}
    
    		if (ino != dot_sb->st_ino)
    			continue;
    
    		/* 如果我们不跨越设备边界,那么一个简单的 i-node
    匹配就足够了。  */
    		if ( ! use_lstat || ent_sb.st_dev == dot_sb->st_dev)
    		{
    			file_name_prepend(file_name, dp->d_name, strlen(dp->d_name));
    			found = true;
    			break;
    		}
    	}
    
    		if (dirp == NULL || closedir (dirp) != 0)
    		{
    			/* N请注意,此诊断适用于 readdir
    和关闭失败。  */
    			printf("reading directory %s\n",strdup(nth_parent(parent_height)));
    		}
    
    		if ( ! found)
    			printf("couldn't find directory entry in %s with matching i-node",strdup(nth_parent(parent_height)));;
    
    		*dot_sb = parent_sb;
    }
    
    
    /* 调用 lstat 以获取“/”的设备和 inode 编号。
        失败时,返回NULL。 否则,设置成员
        *ROOT_D_I 相应地并返回 ROOT_D_I。  */
    struct dev_ino *get_root_dev_ino (struct dev_ino *root_d_i)
    {
    	struct stat statbuf;
    	if (lstat ("/", &statbuf))
    		return NULL;
    	root_d_i->st_ino = statbuf.st_ino;
    	root_d_i->st_dev = statbuf.st_dev;
    	return root_d_i;
    }
    
    
    static void robust_getcwd (struct file_name *file_name)
    {
    	size_t height = 1;
    	struct dev_ino dev_ino_buf;
    	struct dev_ino *root_dev_ino = get_root_dev_ino (&dev_ino_buf);
    	struct stat dot_sb;
    
    	if (root_dev_ino == NULL)
    		printf("failed to get attributes of %s\n",strdup("/"));
    
    	if (stat (".", &dot_sb) < 0)
    		printf("failed to stat %s\n",strdup("."));
    
    	while (1)
    	{
    		find_dir_entry (&dot_sb, file_name, height++);
    	}
    
    	/* 查看是否需要前导斜线; file_name_prepend 添加一个。   */
    	if (file_name->start[0] == '\0')
    		file_name_prepend (file_name, "", 0);
    }
    
    /* 如果“pwd -L”可接受,则从环境中返回 PWD
        输出,否则为 NULL。   */
    static char *logical_getcwd (void)
    {
    	struct stat st1;
    	struct stat st2;
    	char *wd = getenv("PWD");
    	char *p;
    
    	/* 首先进行文本验证。  */
    	if (!wd || wd[0] != '/')
    		return NULL;
    	
    	p = wd;
    	while ((p = strstr(p, "/.")))
    	{
    		if (!p[2] || p[2] == '/'
    		  || (p[2] == '.' && (!p[3] || p[3] == '/')))
    			return NULL;
    			
    		p++;
    	}
    
    
    	/* 系统调用验证  */
    	if (stat(wd, &st1) == 0 && stat (".", &st2) == 0)
    		return wd;
    	
    	return NULL;
    }
    
    
    int main(int argc, char **argv)
    {
    	
    	char *wd;
    	/* POSIX 要求默认值为 -L,但大多数脚本都需要 -P。
    当前外壳默认为 -L,而独立时
    pwd 实现默认为 -P。 */
    	
    	bool logical = (getenv ("POSIXLY_CORRECT") != NULL);
    	
    	while (1)
    	{
    		int c = getopt(argc, argv, "LP");
    		
    		if (c == -1)
    			break;
    		switch (c)
    		{
    			case 'L':
    				logical = true;
    				break;
    			case 'P':
    				logical = false;
    				break;
    			default:
    				break;
    		}
    	}
    
    	if (optind < argc)
    		printf("ignoring non-option arguments\n");
    
    	if(logical)
    	{
    		wd = logical_getcwd();
    		if (wd)
    		{
    			puts(wd);
    			return 0;
    		}
    	}
    
    	wd = getcwd(NULL, 0);
    	if (wd != NULL)
    	{
    		puts(wd);
    		free(wd);
    	}
    	else
    	{
    		struct file_name *file_name = file_name_init();
    		robust_getcwd(file_name);
    		puts (file_name->start);
    		file_name_free(file_name);
    	}
    	
    	return 0;
    }
    
    
    

    编译运行

    在这里插入图片描述

    总结

    Linux中用 pwd 命令来查看”当前工作目录“的完整路径。 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录。在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置。

    欢迎关注微信公众号【程序猿编码】,欢迎添加本人微信号(17865354792)交流学习。

    展开全文
  • 来去创建新的一个目录,同样的是也可以利用CD命令从一个目录转换到另外的一个目录,你将会发现,系统将没有任何提示符来告诉你目前是处于哪一个目录当中,如果想要知道是处于什么目录的话,则是可以利用pwd命令来...

    如果对Linux有一定基础的用户,相信都会熟悉这样的一些操作,你可以在授权的目录下面利用mkdir命令;来去创建新的一个目录,同样的是也可以利用CD命令从一个目录转换到另外的一个目录,你将会发现,系统将没有任何提示符来告诉你目前是处于哪一个目录当中,如果想要知道是处于什么目录的话,则是可以利用pwd命令来显示整个路径的名称。

    a9a6014aaa8c7ae5ddf71fde06fcc399.png

    PWD的全称是:

    Print-Working-Directory

    用途是:

    显示工作目录的路径名称。

    基本的语法

    pwd[-L|-P]

    描述:

    使用pwd命令可以是将当前目录的全路径名称(从根目录)写入标准输出。并且是全部目录使用/(斜线)分隔。第一个/表示根目录,看到最后一个目录就是当前的一个目录。

    相关的一些标志

    -L

    如果PWD环境变量包含了不包含文件名。(点)或。。(点点)的当前目录的绝对路径名,将会是显示PWD环境变量的值。否则的话,-L标志与-P标志将会是一样的结果运行。

    -P

    该命令是可以显示当前目录的绝对路径名。与-P标志一起显示的绝对路径不包含在路径名的绝对路径中涉及到符号链接类型的文件的名称。

    退出状态

    该命令返回以下出口值:

    0表示的是成功的完成。

    》0是表示发生错误。

    linux并不像Windows那样操作简单,在前面的文章中已经为大家简单介绍了这两种系统之间的一个区别,相信刚开始学习的朋友们可以掌握了解清楚命令行的使用,以及延伸符号的理解。

    展开全文
  • Linux中cd命令和pwd命令的用法

    千次阅读 2022-03-31 00:02:28
    1、cd命令 1)、cd命令 当前目录下,进入指定的目录 2)、cd / 命令 进入根目录 3) cd或者 cd ~ 进入家目录 4)cd ..... 1)、 pwd命令 :显示当前路径的绝对路径(绝对路径是指从家目录到当前目录)

    目录

    1、cd命令

    1)、cd命令 当前目录下,进入指定的目录

    2)、cd / 命令 进入根目录

    3) cd或者 cd ~ 进入家目录

     4)cd ..   表示进入上一级目录

    5)cd -  返回刚才所在的路径

     2、pwd 命令   

          1)、 pwd命令 :显示当前路径的绝对路径(绝对路径是指从家目录到当前目录)


    1、cd命令

    1)、cd命令 当前目录下,进入指定的目录

      用法:cd (目录名)

    2)、cd / 命令 进入根目录

    用法 : cd (空格) /

    3) cd或者 cd ~ 进入家目录

    用法:直接cd 或者 cd(空格)~

    4)cd ..   表示进入上一级目录

    用法 :cd .. 

    5)cd -  返回刚才所在的路径

    用法: cd -

     2、pwd 命令   

          1)、 pwd命令 :显示当前路径的绝对路径(绝对路径是指从家目录到当前目录)

               用法:pwd

    展开全文
  • pwd命令的作用就这里了,使用pwd命令可以显示用户所在目录路径。全称Print Working Directory用途显示工作目录的路径名称。语法pwd [ -L | -P ]描述pwd 命令将当前目录的全路径名称(从根...
  • 实际工作,我盟命令行操作命令时,经常会各个目录路径之间进行切换,此时可使用pwd命令快速查看当前我们所在的目录路径。语法格式:pwd[option]pwd [选项]说明:1. 注意 pwd 命令和后面的选项之间至少有一个...
  • ls, cd, pwd命令在Linux中查看文件最常用的三个命令,对新手来说,掌握了这三个命令,就可以比windows图形界面更容易掌握文件的组织结构和相关信息。 1. ls命令 是list files的缩写,用于显示目录下包含的文件。...
  • Linuxpwd命令

    2017-01-18 22:35:54
    说明:pwd主要是来查看当前工作目录的完整路径 一般情况下,pwd后面是不带任何参数的下面我来说说有点特殊的情况: pwd -P(显示的是实际路径,而pwd显示的是连接...如当前目录删除了,而用pwd命令任然会显示那个目录
  • 建站服务器linux命令中的“.”表示什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。. 代表你的当前目录即"pwd"命令所返回的...
  • cd 命令,是 Change Directory 的缩写,用来...Linux 的绝大多数命令是外部命令,而 cd 命令是一个典型的 Shell 内置命令,所以 cd 命令没有执行文件所在路径。 cd 命令的基本格式如下: [root@localhost ~]# cd [相
  • pwd,pwd命令的简单用法

    万次阅读 2020-12-28 20:09:31
    在Linux系统pwd命令用作显示工作目录的复路径名称,全称是“PrintWorkingDirectory”。科研领域,pwd可看作是“PeopleWithDisabiliy”的缩写,意思是残疾人制。pwd还可以表示压力随钻监测系统或者物理媒介相关...
  • Linux命令-(pwd、cd、ls)

    千次阅读 2022-03-20 21:28:51
    目录 一、shell 1.1 shell 二、Linux命令 2.1 Linux命令分类 ...shell是Linux系统后台运行的一种特殊程序也可以理解成一种特殊的软件,提供了用户与内核进 行交互操作的一种接口。 Linux系统..
  • 一、pwd命令 功能:查看当前所在的工作目录 二、cd 上一级目录,下一级目录,相对路径、绝对路径、特殊符号的使用 功能:不同的目录间切换,更改当前目录 1)绝对路径 2)特殊符号 可以使用一些特殊符号...
  • Linux系统之Pwd和cd命令

    2020-02-20 19:06:20
    Linux系统之Pwd和cd命令 ...2、pwd作用:实际工作,我们经常会不同目录之间进行切换,为了防止“迷路”,我们可以使用pwd命令快速查看当前我们所在的目录路径。 3、cd命令: 这个命令应该是Linux中用的最频繁...
  • Linux超全命令总结,看这一篇就够了,建议小伙伴们先收藏后阅读!!
  • Linux 层次结构,想要知道当前所处的目录,可以用 pwd 命令,该命令输出当前工作目录的完整名称。环境变量 OLDPWD 表示前一次的工作目录,环境变量 PWD 表示当前的工作目录。命令介绍命令名称pwd命令全称Print ...
  • 我其实对linux并不了解,借这个机会需要系统的整理一下,ros和自动驾驶仿真软件是自动驾驶很有力的辅助工具,前人的肩膀上,我先看代码,很多是shell脚本,那这里把我遇到的shell脚本常见的命令进行系统总结一下: ...
  • linux sed命令使用详解

    千次阅读 多人点赞 2022-07-06 08:59:29
    linux sed命令使用详解
  • 1. pwd 显示当前文件的路径2.cdcd /path/to 绝对路径cd ./path/to 相对路径cd ../path/to 相对路径绝对路径和相对路径3.ls 查看目录下有哪些文件 显示不同颜色的文件夹表示被赋予了不同的权限4.如果命令的终端里 ...
  • 如何编程实现Linux中pwd命令

    千次阅读 2019-04-20 13:49:49
    0x00 pwd命令是什么? pwd用来显示到达当前目录的路径。 0x01 pwd命令是如何工作的? 我们知道一个目录下包含了两个特殊的目录.和..分别表示当前目录和上一个目录。我们可以先找到.的inode节点编号,然后回到上一级...
  • linux中命令如何输入

    千次阅读 2021-05-10 10:54:20
    建议你先安装RedHatLinux,然后练习如何配置它,如何使用Linux命令,如何X—WINDOWS下操作,如何在Linux下安装应用软件,如何在Linux下上网、编辑文档、播放多媒体文件、玩游戏等。快速上手的方法只有一个,那就是...
  • linux用户登录以后,命令提示符上一般有形如 [root@hostname /usr/local ] $ 这样的格式,如果要修改命令提示符的显示方式,可以通过修改环境变量PS1来实现。 我自己的配置是: export PS1='[\\u@\\h $PWD]\\$ ' ...
  • Linux pwd命令:显示当前路径

    千次阅读 2019-06-21 20:59:57
    ♥️♥️♥️♥️♥️♥️由于 Linux 文件系统有许多目录,当用户执行一条 Linux 命令又没有指定该命令或参数所在的目录时,Linux 系统就会首先当前目录(目前的工作目录)搜寻这个命令或它的参数。因此,用户...
  • 1、cd命令 cd(Change Directory)是用来切换工作目录. 语法:cd [dirName] 其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。 具体使用...
  • linux中cd命令的详细解释

    千次阅读 2021-05-15 11:59:16
    linux下的cd命令是常用的基本命令之一。下面由学习啦小编整理了linux的cd命令的详细解释,希望对你有帮助。linux的cd命令的详细解释1.cd命令概述cd是Change Directory的缩写,这是用来切换工作目录的命令。cd命令是...
  • 那么,我们就用 Linux 最常见的 ls 命令来解释一下命令的格式(有关 ls 命令的具体用法,后续章节会详细介绍)。如果按照命令的分类,那么 ls 命令应该属于目录操作命令。 1)选项的作用——调整命令功能 Linux 的...
  • Linux常用命令Linux常用基本命令大全

    万次阅读 多人点赞 2022-03-19 07:58:25
    最近Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解到的Linux常用命令列举一下,仅供大家...
  • “`pwd命令“`2. “`cd命令“`2.1 “`cd命令的表示“`3.“`ls命令“` 1. pwd命令 用于显示用户当前所处的工作目录,pwd是“print working directory”的缩写; 2. cd命令 用户切换工作路径,使用cd命令可以灵活的...
  • linux基本命令ls、pwd、cd、mkdir等

    千次阅读 2021-05-10 17:14:19
    ls 命令,列出目录信息ls 命令就是 list 的缩写。 ls 用来打印出当前目录的清单。命令格式:ls [选项] [目录名]常用参数:参数 描述-a –all 列出目录下的所有文件,包括以 . 开头的隐含文件-l 除了文件名之外,还将...
  • Linux显示当前位置命令 pdw [root@localhost data]# pwd /www/wdlinux/mysql-5.6.16/data

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 88,221
精华内容 35,288
热门标签
关键字:

在linux中pwd命令表示