【Linux】目录的相关命令——cd,pwd,mkdir,rmdir

1.相对路径与绝对路径

在开始目录的切换之前,你必须要先了解一下所谓的路径(PATH),有趣的是:什么是相对路
与绝对路径?

  1. 绝对路径路径的写法“一定由根目录/写起”,例如:/usr/share/doc 这个目录。
  2. 相对路径路径的写法“不是由/写起”,例如由/usr/share/doc 要到/usr/share/man下面时,可以写成:“cd./man”这就是相对路径的写法,相对路径意指相对于目前工作目录的路径。

2.目录的相关操作

Linux下有哪些比较特殊的目录?

举例来说,下面这些就是比较特殊的目录,得要用力地记下来才行:

  1. .:代表此层目录。
  2. ..:代表上一层目录。
  3. -:代表前一个工作目录。
  4. ~:代表目前使用者身份所在的家目录.
  5. ~account: 代表account 这个使用者的家目录(account是个账号名称)。

需要特别注意的是:在所有目录下面都会存在的两个目录,分别是“.”与“..”分别代表此层与
上层目录的意思。

那么来思考一下下面这个例题:

请问在Linux下面,根目录下有没有上层目录(.)存在?
        答:若使用“Is一al  /”去查询,可以看到根目录下确实存在,与.两个目录,再仔细查看,可发现这两个目录的属性与权限完全一致,这代表根目录的上一层(.)与根目录自己(.)是同一个目录。

下面我们就来谈一谈几个常见的处理目录的命令;

  1. cd:切换目录
  2. pwd:显示当前目录
  3. mkdir:建立一个新目录
  4. rmdir:删除一个空目录
  5. cd :(change directory,切换目录)

2.1.cd (change directory,切换目录)

它的一般用法是:cd [相对路径或绝对路径]

 我们知道zs_108 这个用户的家目录是/home/zs_108/,而root 家目录则是/root/,假设我以root
身份在Linux 系统中,那么简单说明一下这几个特殊目录的意义是:

先切换身份成为root看看。


代表进入zs_108 这个使用者的家目录,亦即/home/zs_108。


表示回到自己的家目录,亦即是/root这个目录。


#没有加上任何路径,也还是代表回到自己家目录的意思。

#表示去到目前的上层目录,亦即是/root的上层目录的意思。

表示回到刚刚的那个目录,也就是/root。


这个就是绝对路径的写法。直接指定要去的完整路径名称。

这个是相对路径的写法,我们由/var/spoo1/mai1到/var/spool/postfix就这样写。

        cd 是Change Directory的缩写,这是用来切换工作目录的命令,注意目录名称与cd命令之间存在一个空格。

        当登录Linux系统后,每个账号都会在自己账号的家目录中,那回到上一层目录可以用“cd ..”。利用相对路径的写法必须要确认你目前的路径才能正确地去到想要去的目录。

例如上面当中最后一个例子,你必须要确认你是在/var/spool/mail 当中,并且知道在/var/spool 当中有个mqueue的目录才行,这样才能使用cd烈/postfix进入正确的目录,否则就要直接输入cd/var/spool/postfix。
        其实,我们的提示字符,亦即那个【root@hcss-ecs-b4c3 ~]#当中,就已经有指出当前目录了,刚登录时会到自己的家目录,而家目录还有一个符号,那就是“~”。

        例如上面的例子可以发现,使用“cd~”可以回到自己的家目录里面。另外,针对cd的使用方法,如果仅输入cd时,代表的就是“cd~”的意思,亦即回到自己的家目录。而那个“cd-”比较难以理解,请自行多做几次练习,就会明白了。

        还是要一再地提醒,我们的Linux的默认命令行模式(bash shell)具有文件补齐功能,你要常常利用[Tab]按键来自动补全目录路径。这可是个好习惯,可以避免你按错键盘输入错字。

2.2.pwd(显示目前所在的目录)


选项与参数:

  • -P:显示出真正的路径,而非使用链接(link)路径。

范例1:单纯显示出目前的工作目录。

范例2:显示出实际的工作目录,而非链接文件本身的目录名而已,

注意,/var/mail是一个链接文件.

怎么回事?有没有加-P差很多.

看到这里应该知道为啥了吧?

        因为/var/mail是链接文件,链接到/var/spool/mail。#所以,加上pwd -P的选项后,不会显示链接文件的路径,而是显示正确的完整路径。

        pwd是Print Working Directory的缩写,也就是显示目前所在目录的命令,例如在上面最后的目录是/var/mail,但是提示字符仅显示mail,如果你想要知道目前所在的目录,可以输入pwd即可。

        此外,由于很多的软件所使用的目录名称都相同,例如/usr/local/etc和/etc,但是通常Linux仅列出最后面那一个目录而已,这个时候你就可以使用pwd 来知道你的所在目录,免得搞错目录,造成损失。

        其实有趣的是那个 -P的选项。它可以让我们取得正确的目录名称,而不是以链接文件的路径来显示的。如果你使用的是CentOS 7.x的话,刚好/var/mail 是/var/spool/mail的链接文件,通过到/var/mail 执行pwd-P就能够知道这个选项的意义。

2.3.mkdir(建立新目录)

mkdir[-mp]目录名称

选项与参数:

  • -m:设置文件的权限。直接设置,不使用默认权限(umask).
  • -p:帮助你直接将所需要的目录(包含上层目录)递归创建。

范例:请到/tmp 下面尝试建立数个新目录看看:

#话说,系统告诉我们,不可能建立这个目录,就是没有目录才要建立的,见鬼嘛?



原来是要建test4上层没先建test3的原因,加了这个-p的选项,可以自行帮你建立多层目录,

范例:建立权限为rwx--x--x的目录。

仔细看上面的权限部分,如果没有加上-m来强制设置属性,系统会使用默认属性,那么你的默认属性是什么?这要通过umask才能了解.

如果想要建立新的目录的话,那么就使用mkdir (make directory)吧!

        不过,在默认的情况下,你所需要的目录得一层一层地建立才行。

        例如:假如你要建立一个目录为/home/bird/testing/test1,那么首先必须要有/home 然后/home/bird,再来/home/bird/testing 都必须要存在,才可以建立/home/bird/testing/test1这个目录。假如没有/home/bird/testing时,就没有办法建立test1的目录。

        不过,现在有个更简单有效的方法,那就是加上-p 这个选项,你可以直接执行:“mkdir -p/home/bird/testing/test1”则系统会自动帮你将/home、/home/bird、/home/bird/testing 依序地建立起目录。并且,如果该目录本来就已经存在时,系统也不会显示错误信息。挺快乐吧!

不过不建议常用-p这个选项,因为担心如果你打错字,那么目录名称就会变得乱七八糟。

        另外,有个地方你必须要先有概念,那就是默认权限。我们可以利用-m来强制设置一个新目录相关的权限,例如上表当中,我们给予-m711来给予新的目录drwx--x--x的权限。不过,如果没有使用-m选项时,那么默认的新建目录权限又是什么?这个跟umask有关、

2.4.rmdir(删除“空”的目录)

rmdir [-p]目录名称

选项与参数:

  • -p:连同上层“空的”目录也一起删除.

范例:将于mkdir 范例中建立的目录(/tmp下面)删除掉。
可直接删除掉,没问题

因为尚有内容,所以无法删除.

您看看,下面的输出中test与test1不见了。

        使用-p选项,立刻可将 test1/test2/test3/test4一次删除,不过要注意,这个rmdir 仅能“删除空目录”.这个-p选项是从test4开始,因为test4是空的,就被删除了,回到test3,因为test4被删除了,test3就变空了,然后test3被删除,依次类推

如果想要删除旧有的目录时,就使用rmdir。

例如将刚刚建立的test 删掉,使用【rmdir test】即可。

请注意,目录需要一层一层的删除才行,而且被删除的目录里面必定不能存在其他的目录或文件,这也是所谓的空目录(empty directory)的意思。

那如果要将所有目录下的东西都删除?

这个时候就必须使用【rm  -r test 】。不过,还是使用rmdir 比较安全,你也可以尝试以-p选项来删除上层空的目录。


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/782811.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

间接平差——以水准网平差为例 (matlab详细过程版)

目录 一、原理概述二、案例分析三、代码实现四、结果展示本文由CSDN点云侠原创,间接平差——以水准网平差为例 (matlab详细过程版),爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT生成的文章。 一、原理概述 间接平差的函数模型和随机模型…

深入分析 Android BroadcastReceiver (十)(完)

文章目录 深入分析 Android BroadcastReceiver (十)1. 深入理解 Android 广播机制的高级应用与实践1.1 高级应用1.1.1 示例:广播启动服务1.1.2 示例:数据变化通知1.1.3 示例:下载完成通知 1.2 实践建议1.2.1 设置权限1.2.2 动态注册和注销广播…

零基础STM32单片机编程入门(十) 28BYJ-48步进电机的控制实战含源码视频

文章目录 一.概要二.28BYJ-48步进电机介绍三.步进电机的主要特性四.步进电机驱动1.驱动硬件介绍2.四相八拍程序控制介绍 五.STM32单片机驱动步进电机正转反转实验六.CubeMX工程源代码下载七.讲解视频链接地址八.小结 一.概要 步进电机是将电脉冲信号转变为角位移或线位移的开环…

102.二叉树的层序遍历——二叉树专题复习

迭代方式&#xff1a; class Solution {// 定义一个成员变量res来存储层序遍历的结果List<List<Integer>> res new ArrayList<>();// levelOrder方法是层序遍历的接口&#xff0c;它接受一个二叉树的根节点rootpublic List<List<Integer>> lev…

开展新版FMEA培训如何避免陷入形式主义?

在企业中开展新版FMEA培训&#xff0c;旨在提升员工对产品潜在故障及其影响的识别、评估和控制能力&#xff0c;从而增强产品质量和可靠性。然而&#xff0c;不少企业在开展新版FMEA培训时往往容易陷入形式主义&#xff0c;导致培训效果不佳。为了避免这种情况&#xff0c;我们…

视频压缩软件哪个压缩最小,视频用什么软件压缩最小

在数字媒体时代&#xff0c;视频内容的生产与分享已成为生活常态。但随之而来的问题就是&#xff0c;大视频文件占用过多存储空间&#xff0c;上传和分享也变得不便。本文将为你揭示如何将视频压缩到最小&#xff0c;同时保持画质清晰。让我们一起探索吧&#xff01; 下载并文件…

Java SE 9模块化系统。

JDK 9模块化介绍 介绍Java SE 9&#xff1a;拼图项目1.拼图项目将引入Java SE 9的全新概念&#xff1a;Java模块系统。2.Java模块解决了什么问题3.细节描述 Java SE 9模块系统的优点1.由于Java SE 9将把JDK&#xff0c;JRE&#xff0c;JAR等分成较小的模块&#xff0c;因此我们…

程序员必知的 89 个操作系统核心概念

1. 操作系统&#xff08;Operating System&#xff0c;OS&#xff09;&#xff1a;是管理计算机硬件与软件资源的系统软件&#xff0c;同时也是计算机系统的内核与基石。操作系统需要处理管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系…

Spring Boot源码概述及应用案例

文章目录 Spring Boot源码关键点应用案例&#xff1a;构建一个简单的Spring Boot Web应用1. 创建项目2. 主类3. 添加用户实体4. 创建用户服务5. 创建REST控制器6. 运行和测试应用 深入与扩展1. 数据持久化2. 安全性增强 Spring Boot源码关键点 Spring Boot 的源码设计遵循模块…

SQLServer的系统数据库用别的服务器上的系统数据库替换后做跨服务器连接时出现凭证、非对称金钥或私密金钥的资料无效

出错作业背景&#xff1a; 公司的某个sqlserver服务器要做迁移&#xff0c;由于该sqlserver服务器上数据库很多&#xff0c;并且做了很多的job和维护计划&#xff0c;重新安装的sqlserver这些都是空的&#xff0c;于是就想到了把系统4个系统数据库进行替换&#xff0c;然后也把…

LeetCode热题100刷题8:54. 螺旋矩阵、73. 矩阵置零、48. 旋转图像

54. 螺旋矩阵 class Solution { public:vector<int> spiralOrder(vector<vector<int>>& matrix) {vector<int> vec;if(matrix.empty())return vec;int left0;int right matrix[0].size()-1;int up0;int down matrix.size()-1;while(true) {for(i…

flask、fastapi在服务器制作接口携参访问返回参数

flask创建接口&#xff1a; 一、安装python 官网下载Download Python | Python.org 二、安装flask 在选择的文件夹路径cmd调用bash安装 pip install Flask三、创建flask应用 # app.py from flask import Flask, request, jsonify app Flask(__name__) app.route(/ech…

如何选择合适的PCB表面处理工艺?

在PCB制造中应用PCB表面处理至关重要&#xff0c;以保护铜迹线不受氧化和环境污染物的侵蚀&#xff0c;这些污染物会降低性能。这些PCB表面处理可以防止水分、灰尘、化学物质和极端温度的侵入&#xff0c;防止PCB材料的腐蚀。它们还有助于在组装过程中有效焊接和粘合&#xff0…

240707_昇思学习打卡-Day19-基于MindSpore通过GPT实现情感分类

240707_昇思学习打卡-Day19-基于MindSpore通过GPT实现情感分类 今天基于GPT实现一个情感分类的功能&#xff0c;假设已经安装好了MindSpore环境。 # 该案例在 mindnlp 0.3.1 版本完成适配&#xff0c;如果发现案例跑不通&#xff0c;可以指定mindnlp版本&#xff0c;执行!pip…

Git 查看、新建、删除、切换分支

Git 是一个版本控制系统&#xff0c;软件开发者用它来跟踪应用程序的变化并进行项目协作。 分支的诞生便于开发人员在彼此独立的环境中进行开发工作。主分支&#xff08;通常是 main 或 master&#xff09;可以保持稳定&#xff0c;而新的功能或修复可以在单独的分支中进行开发…

STM32智能无人机控制系统教程

目录 引言环境准备智能无人机控制系统基础代码实现&#xff1a;实现智能无人机控制系统 4.1 数据采集模块 4.2 数据处理与飞行控制 4.3 通信与导航系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;无人机应用与优化问题解决方案与优化收尾与总结 1. 引言 智能无人机控…

AI工具杂谈

AI是在帮助开发者还是取代他们&#xff1f; 在软件开发领域&#xff0c;生成式人工智能&#xff08;AIGC&#xff09;正在改变开发者的工作方式。无论是代码生成、错误检测还是自动化测试&#xff0c;AI工具正在成为开发者的得力助手。然而&#xff0c;这也引发了对开发者职业…

哪个牌子的护眼大路灯质量好呢?性价比高的五款护眼大路灯分享

护眼大路灯可以说是是每个有娃家庭必不可少的照明神器。但面对市场上琳琅满目的护眼落地灯品牌和型号&#xff0c;很多消费者在选购时都会犯难&#xff1a;究竟哪个牌子的护眼大路灯质量好呢&#xff1f;哪个性价比高呢&#xff1f;本文将根据市场反馈以及性价比等各方面&#…

Table 表格--分页序号自增

代码&#xff1a; import { Space, Table, Tag } from antd; import type { ColumnsType } from antd/es/table; import React, { useState } from react;interface DataType {key: string;name: string;age: number;address: string;tags: string[]; }const data: DataType[]…

6K star! 部署本地运行LLM的AI助手,零基础入门到精通超详细

AI套壳千千万万&#xff0c;你最喜欢哪一款&#xff1f;现在各种ChatGPT替代品层出不穷&#xff0c;但是大部分都是使用OpenAI的API&#xff0c;也就说离不开网络。 今天我们推荐的开源项目它就是要帮你100%在本地运行大模型&#xff0c;进而构建一个属于自己的ChatGPT&#x…