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 格式就显得很有必要。本教程将介绍如何使用简鹿格式工厂…...

爆肝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,无法保证其下的子节…...
敏捷测试文化的转变
敏捷文化是敏捷测试转型的基础,只有具备敏捷文化的氛围,对组织架构、流程和相关测试实践的调整才能起作用。在前面的敏捷测试定义中,敏捷测试是遵从敏捷软件开发原则的一种测试实践,这意味着敏捷的价值观。 此外,从传…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...

优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

基于开源AI智能名片链动2 + 1模式S2B2C商城小程序的沉浸式体验营销研究
摘要:在消费市场竞争日益激烈的当下,传统体验营销方式存在诸多局限。本文聚焦开源AI智能名片链动2 1模式S2B2C商城小程序,探讨其在沉浸式体验营销中的应用。通过对比传统品鉴、工厂参观等初级体验方式,分析沉浸式体验的优势与价值…...

rm视觉学习1-自瞄部分
首先先感谢中南大学的开源,提供了很全面的思路,减少了很多基础性的开发研究 我看的阅读的是中南大学FYT战队开源视觉代码 链接:https://github.com/CSU-FYT-Vision/FYT2024_vision.git 1.框架: 代码框架结构:readme有…...
python打卡day49@浙大疏锦行
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 一、通道注意力模块复习 & CBAM实现 import torch import torch.nn as nnclass CBAM(nn.Module):def __init__…...
scan_mode设计原则
scan_mode设计原则 在进行mtp controller设计时,基本功能设计完成后,需要设计scan_mode设计。 1、在进行scan_mode设计时,需要保证mtp处于standby模式,不会有擦写、编程动作。 2、只需要固定mtp datasheet说明的接口即可…...

第2篇:BLE 广播与扫描机制详解
本文是《BLE 协议从入门到专家》专栏第二篇,专注于解析 BLE 广播(Advertising)与扫描(Scanning)机制。我们将从协议层结构、广播包格式、设备发现流程、控制器行为、开发者 API、广播冲突与多设备调度等方面,全面拆解这一 BLE 最基础也是最关键的通信机制。 一、什么是 B…...