linux-21 目录管理(一)mkdir命令,创建空目录

news2025/1/2 21:42:48

  对linux而言,对一个系统管理来讲,最关键的还是文件管理。那所以我们接下来就来看看如何实现文件管理。当然,在文件管理之前,我们说过,文件通常都放在目录下,对吧?所以先了解目录,可能对我们而言是个基础,来看一下,目录管理的相关功能都有哪些吧?
首先我们讲过几个命令了,比方说ls、cd、pwd,再看其他命令,比如要想创建一个目录,该怎么办?mkdir,简写make directory,这就是用来创建空目录的。我们在什么地方可以创建目录?比方说一个路径压根就不存在,我在底下创建行不行?比如,假设我们在root下的x下的y下创建个z,/root/x/y/z请问这到底是创建root创建x再创建y再创建z?还是说我指的目的只是为了创建z?
也就意味着/root/x/y/ 是路径,是不是这意思啊?我们创建目标是谁啊?只是z而已,对吗?那如果z的父目录y不存在的话,怎么办?能创建z吗?不能,这个一定要理解,一说到创建目录就随便给个路径,就要创建,创建目录的时候给的任何一个路径上,只有最后一个节点,就是文件路径的最后一个点,才是要创建的那个目录。比如来看,ls一下当前目录,ls .,如下图,

没有叫x的目录是吧?我们mkdir x,如下图,

就创建了一个叫做x的目录,然后 mkdir x/y,大家看,现在使用的是绝对路径还是相对路径?相对路径,绝对路径都是以斜线开头的,对不对?O而相对路径都是以什么开头的,点斜杠,所以也可以写成 mkdir ./x/y这表示当前目录下x下的y,但是点斜杠可以省略,在很多时候是可以省略的,
这表示我创建个y,如下图,

是在x这个路径下创建的,x是当前目录下的x,此时我们是不是就可以创建z了?就这么简单,因为x和y都已经存在了,mkdir ./x/y/z,如下图,

我们来看看x下边是不是有y,是不是有个z,那么要使用什么命令可以看到目录树?这里我们使用个命令叫tree,查看目录树,这叫查看文件系统树的,tree命令,如下图,

它明显给我们一个结构,x下有y,然后y下有z,假设说我们此时想在root目录下创建个m,下面有个n,再往下有一个q的目录,该怎么来实现?跟刚才一样,先创建m,再创建n,再创建q,对吧?
这事很麻烦,所以很多时候我们希望一个命令搞定的话也可以,mkdir有个选项叫-p选项,-p表示parent,叫父目录,如果我们指定z的话,z的父目录y不存在,那就先创建y,会自动先创建,那如果y的父母x不存在的话,就自动先创建x,如果x父母root不存在,一样依次类推。当然,根不可能不存在的,对不对?那因此所以,我一个命令也能同时把它创建出来,比如,我们使用mkdir -p /root/m/n/q 就行了,不加-p,它会报错的,如下图,

mkdir: cannot create directory `/root/m/n/q': No such file or directory,它压根就没有m,怎么可能在m/n下创建q呢?这不可以,也不允许的,使用杠p选项就可以了,再说另外一个选项叫-v,linux的很多命令都有-v选项,叫做verbose,它意思表示详细信息。那因此我们把-p和-v一块来用,它会显示这个创建过程,mkdir -p /root/m/n/q,如下图,

先创建m,m下创建n,n下再创建q,如果不想查看这个过程,-v就不用带了,有没有发现?我们如果执行个命令,成功了不加-v选项,它什么都不给我们返回,如果失败了,就给我们说一大堆话,
是不是这样子?所以这也是linux的重要哲学思想之一,叫没有信息就是最好的信息。它不说话,那就说明这事儿成了,它要跟你说一大堆,那说明一般是有问题的。所以它一旦出现信息了,一定要看一看。看不懂也要看,反正我们有词典,有各种翻译,好,这是我们mkdir命令的使用,当然它的常用选项也就这么多,这是如何创建一个目录的,是不是很简单?好了,我们思考这样一个问题,有时候我们可能有这样的一种需求,假设在mnt下创建个创建个test目录,在test下创建个x,在test下还创建一个y。好在x下还有一个m,思考下,怎么用一个命令实现,一下子创建了几个路径出来?怎么实现?很简单,mkdir -pv /mnt/test/x/m /mnt/test/y,是不是这样子?那有没有发现整个路径里边前半段都是重复的?那怎么办呢?还可以这么来用,mkdir -pv /mnt/test/{x/m,y},这叫花括号,这是bash的一种特性,高级特性叫做花括号展开,或者叫命令行展开,当它遇见花括号的时候,会自动把逗号分隔的路径展开为两个,那意思就是说,有的路径是/mnt/test/x/m ,有的路径是 /mnt/test/y,所以它自动把它展开为上面这两个这个路径,这就叫花括号展开,或者叫命令行展开的一种功能,叫花括号展开。其实已经讲过一个了,另外一个展开叫波浪线展开,我写个cd ~student的时候,是不是自动给你转换完成这个student用户的家目录了?这就叫波浪线展开,我们来试一下,mkdir -pv /mnt/test/{x/m,y},如下图,

看看test、xx、m、y是不是展开了。

    好,那于是我们思考这样一个问题,我想在/mnt/目录下的mm目录下建立a_c a_d b_c b_d ,这四个目录如何通过一个命令完成呢?
很简单,mkdir -pv /mnt/mm/{a,b}_{c,d},如下图,

我们tree /mnt/mm ,如下图

这也是我们linux或者unix管理员的十大常用技巧之一,要学会使用,学会灵活运用。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vulnhub jangow靶机

1.扫描靶机IP arp-scan -l如果扫不到靶机的话根据以下配置 启动时点击第二个 按回车 继续选择第二个 按e进入编辑 删除"recovery nomodeset" 在末尾添加"quiet splash rw init/bin/bash" Ctrlx 启动进入如下界面 passwd修改root密码 重启电脑登录root修…

惠普HP proliant DL380 G6服务器使用

惠普HP proliant DL380 G6服务器使用经历 前言 HP ProLiant DL380 G6是一款机架式服务器,标配1个Xeon E5504处理器。 已被列入“高耗能老旧通信设备淘汰指导目录” 配置 基本类别 类别 机架式 结构 2U 内存 内存类型 DDRIII 内存大小 4GB(单条插槽…

java 斐波那契查找,涵盖原理、算法分析、实现细节、优缺点、应用场景等

一、定义 斐波那契查找(Fibonacci Search)是一种基于斐波那契数列的查找算法,适用于已排序的数组。它利用斐波那契数列的性质来减少比较次数,并且能够在某些条件下比二分查找更快。 更多优质资源推荐: http://sj.yso…

内网学习:工作组用户与权限

目录 一、本地用户组介绍本地工作组介绍用户与组的关系 二、四种用户类型及权限比较本地系统最高权限(System账户)特性Administrator与System账户的区别 本地最高管理员(Administrator用户)特性 本地普通管理员特性 本地普通用户特…

图片转成oled使用的字模数据

目录 oled尺寸 如何生成用到的图片 图片转字模 1.首先用Img2Lcd转成bmp单色图片 2.然后用PCtoLCD2002把单色图片转字模 oled尺寸 我使用0.96寸oled模块,对应着的分辨率是128*64,对应着宽高像素比128*64。所以不是随意一张图片就能用的,…

PTPVT 插值说明

文章目录 PTPVT 插值说明 PTPVT 插值说明PVT Hermite插值PVT 三次多项式插值PT 插值Sin轨迹测试结果PVT Hermite插值结果PVT 三次多项式插值结果PT 插值结果 用户轨迹测试结果PVT Hermite插值结果PT 插值结果 PTPVT 插值说明 PT模式: 位置-时间路径插值算法。 PVT模…

Mac安装多个版本node、java、python 等开发软件环境,安装、卸载、升级多个数据库

安装多个版本node、java、python 等开发软件环境 使用nvm(Node.js Version Manager)来管理多个Node.js版本。 使用jenv来管理多个Java版本。 使用pyenv来管理多个Python版本。 以下是安装和使用这些版本管理器的基本步骤: 1. 安装多个版本…

【深度学习】卷积网络代码实战ResNet

ResNet (Residual Network) 是由微软研究院的何凯明等人在2015年提出的一种深度卷积神经网络结构。ResNet的设计目标是解决深层网络训练中的梯度消失和梯度爆炸问题,进一步提高网络的表现。下面是一个ResNet模型实现,使用PyTorch框架来展示如何实现基本的…

添砖java第四更@(+)@

今天的学习内容主要是围绕着实体类来进行的,就是说在java里面我们常常会把数据存放和方法分别存放在不同的类里面。 首先就是关于实体类是什么,实体类就是只提供了get方法,set方法,和默认构造器的类。 接着就是熟悉java与别的语言的不同之处就在于它是…

算法题(19):多数元素

审题: 数组不为空且一定存在众数。需要返回众数的数值 思路: 方法一:哈希映射 先用哈希映射去存储对应数据出现的次数,然后遍历找到众数并输出 当然也可以在第一次映射的过程中就维护一个出现次数最多的数据,这样子就可…

电子商务网站的三层架构的理解和实践

在电子商务领域,网站架构的设计对于系统的稳定性、可扩展性和用户体验至关重要。其中,三层架构作为一种经典的设计模式,被广泛应用于各类电子商务网站中。本文将从理论、理解和实践三个方面,详细探讨电子商务网站的三层架构。 一、…

LVS 负载均衡原理 | 配置示例

注:本文为 “ LVS 负载均衡原理 | 配置” 相关文章合辑。 部分内容已过时,可以看看原理实现。 使用 LVS 实现负载均衡原理及安装配置详解 posted on 2017-02-12 14:35 肖邦 linux 负载均衡集群是 load balance 集群的简写,翻译成中文就是负…

JavaScript甘特图 dhtmlx-gantt

背景 需求是在后台中,需要用甘特图去展示管理任务相关视图,并且不用依赖vue,兼容JavaScript原生开发。最终使用dhtmlx-gantt,一个半开源的库,基础功能免费,更多功能付费。 甘特图需求如图: 调…

领域驱动设计第一篇-DP主题

一:领域驱动设计概述 领域驱动设计。Domain-Driven Design 可以理解为基于领域的工程设计。 1:什么是领域? 初步理解领域:业务问题的范畴。 领域可大可小,对应着大小业务问题的边界。业务上要做的几个事&#xff0…

EMNLP'24 最佳论文解读 | 大语言模型的预训练数据检测:基于散度的校准方法

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 点击 阅读原文 观看作者讲解回放! 作者简介 张伟超,中国科学院计算所网络数据科学与技术重点实验室三年级直博生 内容简介 近年来,大语言模型(LLMs)的…

IntelliJ IDEA 远程调试

IntelliJ IDEA 远程调试 在平时开发 JAVA 程序时,在遇到比较棘手的 Bug 或者是线上线下结果不一致的情况下,我们会通过打 Log 或者 Debug 的方式去定位并解决问题,两种方式各有利弊,今天就简要介绍下如何通过远程 Debug 的情况下…

【Webug】攻防实战详情

世界上只有一种真正的英雄主义,那就是认清了生活的真相后,仍然热爱她 显错注入 首先整体浏览网站 注入点: control/sqlinject/manifest_error.php?id1 判断注入类型 输入: and 11 正常, 再输入: and 12 还正常, 排除数字型 输入单引号:…

SpringMVC核心、两种视图解析方法、过滤器拦截器 “ / “ 的意义

SpringMVC的执行流程 1. Spring MVC 的视图解析机制 Spring MVC 的核心职责之一是将数据绑定到视图并呈现给用户。它通过 视图解析器(View Resolver) 来将逻辑视图名称解析为具体的视图文件(如 HTML、JSP)。 核心流程 Controlle…

CyclicBarrier线程辅助类的简单使用

文章目录 简述内部机制构造函数使用案例异常处理 简述 CyclicBarrier 是另一个用于协调多个线程之间操作的同步辅助类,它允许一组线程互相等待彼此到达一个共同的屏障点(barrier)。与 CountDownLatch 不同的是,CyclicBarrier 可以…

B站推荐模型数据流的一致性架构

01 背景 推荐系统的模型,通过学习用户历史行为来达到个性化精准推荐的目的,因此模型训练依赖的样本数据,需要包括用户特征、服务端推荐的视频特征,以及用户在推荐视频上是否有一系列的消费行为。 推荐模型数据流,即为…