当前位置: 首页 > news >正文

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

  对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管理员的十大常用技巧之一,要学会使用,学会灵活运用。

相关文章:

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

对linux而言,对一个系统管理来讲,最关键的还是文件管理。那所以我们接下来就来看看如何实现文件管理。当然,在文件管理之前,我们说过,文件通常都放在目录下,对吧?所以先了解目录,可能…...

总结-常见缓存替换算法

缓存替换算法 1. 总结 1. 总结 常见的缓存替换算法除了FIFO、LRU和LFU还有下面几种: 算法优点缺点适用场景FIFO简单实现可能移除重要数据嵌入式系统,简单场景LRU局部性原理良好维护成本高,占用更多存储空间内存管理,浏览器缓存L…...

【Vue】如何在 Vue 3 中使用组合式 API 与 Vuex 进行状态管理的详细教程

如何在 Vue 3 中使用组合式 API 与 Vuex 进行状态管理的详细教程。 安装 Vuex 首先,在你的 Vue 3 项目中安装 Vuex。可以使用 npm 或 yarn: npm install vuexnext --save # or yarn add vuexnext创建 Store 在 Vue 3 中,你可以使用 creat…...

VSCode 插件开发实战(十五):如何支持多语言

前言 在软件开发中,多语言支持(i18n)是一个非常重要的功能。无论是桌面应用、移动应用,还是浏览器插件,都需要考虑如何支持不同国家和地区的用户,软件应用的多语言支持(i18n)已经成…...

面试241228

面试可参考 1、cas的概念 2、AQS的概念 3、redis的数据结构 使用场景 不熟 4、redis list 扩容流程 5、dubbo 怎么进行服务注册和调用,6、dubbo 预热 7如何解决cos上传的安全问题kafka的高并发高吞吐的原因ES倒排索引的原理 spring的 bean的 二级缓存和三级缓存 spr…...

​Python数据序列化模块pickle使用

pickle 是 Python 的一个标准库模块,它实现了基本的对象序列化和反序列化。序列化是指将对象转换为字节流的过程,这样对象就可以被保存到文件中或通过网络传输。反序列化是指从字节流中恢复对象的过程。 以下是 pickle 模块的基本使用方法: …...

Spring Boot对访问密钥加解密——HMAC-SHA256

HMAC-SHA256 简介 HMAC-SHA256 是一种基于 哈希函数 的消息认证码(Message Authentication Code, MAC),它结合了哈希算法(如 SHA-256)和一个密钥,用于验证消息的完整性和真实性。 HMAC 是 “Hash-based M…...

HTML 元素:网页构建的基础

HTML 元素:网页构建的基础 HTML(HyperText Markup Language,超文本标记语言)是构建网页的基石。它定义了网页的结构和内容,而HTML元素则是构成HTML文档的基石。在本篇文章中,我们将深入探讨HTML元素的概念、类型、用法,以及如何在网页设计中有效地使用它们。 什么是HT…...

HEIC 是什么图片格式?如何把 iPhone 中的 HEIC 转为 JPG?

在 iPhone 拍摄照片时,默认的图片格式为 HEIC。虽然 HEIC 格式具有高压缩比、高画质等优点,但在某些设备或软件上可能存在兼容性问题。因此,将 HEIC 格式转换为更为通用的 JPG 格式就显得很有必要。本教程将介绍如何使用简鹿格式工厂&#xf…...

爆肝1个月:DDR4 的信号完整性(万字长文SI)

前言: 大学里面,总有很多课程,很浪费时间,学了没点用处,问过老师,为什么信号完整性,示波器使用等课程不开呢,这种是对工作真实有帮助的? 老师:因为老师…...

前端js验证码插件

相关代码,在最上方的绑定资源...

关于easy-es对时间范围查询遇到的小bug

前言:在使用easy-es之前作为一个小白的我只有es原生查询的基础,在自己通过查看官方文档自学easy-es遇到了一个挫折,其他的还好语法和MybatisPlus差不多,正以为我觉得很快就能入手,在对时间范围的判断就给我当头一棒&am…...

Mask R-CNN

目录 摘要 Abstract Mask R-CNN 网络架构 Backbone RPN Proposal Layer ROIAlign bbox检测 Mask分割 损失计算 实验复现 总结 摘要 Mask R-CNN是在Faster R-CNN的基础上进行改进的目标检测和实例分割网络。Faster R-CNN主要用于目标检测,输出对象的边…...

大模型-Dify使用笔记

大模型-Dify使用笔记 0、调整docker镜像源1、安装1、Docker Compose方式部署 2、访问 Dify 0、调整docker镜像源 由于墙的存在,所以默认的docker镜像源很难拉取项目,需要调整相关的docker配置文件 vim /etc/docker/daemon.json添加如下docker镜像源 { …...

Suno Api V4模型无水印开发「综合实战开发自己的音乐网站」 —— 「Suno Api系列」第14篇

历史文章 Suno AI API接入 - 将AI音乐接入到自己的产品中,支持120并发任务 Suno Api V4模型无水印开发「灵感模式」 —— 「Suno Api系列」第1篇 Suno Api V4模型无水印开发「自定义模式」 —— 「Suno Api系列」第2篇 Suno Api V4模型无水印开发「AI生成歌词」…...

云原生架构中的中间件容器化:优劣势与实践探索

在云原生架构逐步推进的过程中,许多企业已经开始将应用和服务容器化,以充分利用云计算带来的弹性和自动化。随着容器技术的发展,容器化不仅仅限于应用层,越来越多的中间件也被考虑纳入容器化范畴,包括Redis、Kafka、Ra…...

如何测试模型推理性能:从零开始的Python指南

如何测试模型推理性能:从零开始的Python指南 什么是模型推理性能?测试模型推理性能的步骤1. 监测内存使用情况2. 测试模型吞吐量 运行测试总结 在机器学习和深度学习中,模型的推理性能是一个非常重要的指标。它可以帮助我们了解模型在实际应用…...

我们来学activiti -- bpmn

bpmn 题记bpmn结余 题记 在《Activiti很难学》提到学习知识点需要面对的思想钢印问题 按常见步骤,先展示下官方的客套话 BPMN(Business Process Model and Notation)是一种业务流程建模符号, 它是一种图形化的语言,用…...

【每日学点鸿蒙知识】节点析构问题、区分手机和pad、 Navigation路由问题、Tabs组件宽度、如何监听Map

1、HarmonyOS 只调用根节点的dispose,是否其下的子节点都能析构掉还是需要遍历子节点,都执行dispose才能正常析构? 前端持有引用关系的需要dispose,new出来的builderNode和FrameNode也需要dispose。只调用根节点的dispose,无法保证其下的子节…...

敏捷测试文化的转变

敏捷文化是敏捷测试转型的基础,只有具备敏捷文化的氛围,对组织架构、流程和相关测试实践的调整才能起作用。在前面的敏捷测试定义中,敏捷测试是遵从敏捷软件开发原则的一种测试实践,这意味着敏捷的价值观。 此外,从传…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...

OpenLayers 分屏对比(地图联动)

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

dify打造数据可视化图表

一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...

django blank 与 null的区别

1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...