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

【Linux】learning notes(3)make、copy、move、remove

在这里插入图片描述

文章目录

  • 1、mkdir (make directory)
  • 2、rmdir (remove directory)
  • 3、rm(remove)
  • 4、>
  • 5、touch 新建文件
  • 6、mv(move)
  • 7、cp(copy)

1、mkdir (make directory)

mkdir (make directory) 就是创建一个文件夹的意思, 使用起来很简单.

  • mkdir folder(不带/也可以),夹中夹 mkdir folder/f
  • mkdir f1 f2 f3 新建多个文件夹

在这里插入图片描述

mkdir -m 777 -v -p /home/bryant/1/2/3/

显示

mkdir: create directory '/home/bryant/1'
mkdir: create directory '/home/bryant/1/2'
mkdir: create directory '/home/bryant/12/3/'

创建多个文件夹

mkdir {dirA,dirB} 

2、rmdir (remove directory)

有一个前提条件. 这些要移除的文件夹必须是空的. 不然会失败.
rmdir folder

3、rm(remove)

在这里插入图片描述

rm 命令在 Linux 和 Unix 系统中用于删除文件或目录。它是 “remove” 的缩写。使用 rm 命令时需要格外小心,因为一旦删除文件或目录,除非有备份,否则通常无法恢复。

  • -f, --force:强制删除文件或目录,忽略不存在的文件,不提示确认。这个选项在脚本中特别有用,因为它可以避免因文件不存在而导致的错误中断。
  • -i, --interactive:交互式删除文件,在删除每个文件之前提示用户确认。这个选项有助于防止意外删除重要文件。
  • -r, -R, --recursive:递归地删除目录及其内容,即删除目录及其包含的所有文件和子目录。这个选项是删除目录所必需的。
  • -v, --verbose:详细模式,显示被删除的每个文件的名称。这个选项在删除大量文件时很有用,因为它可以提供进度反馈。
  • –one-file-system:在递归删除时,rm 默认会跨越文件系统边界(比如,从一个挂载的目录删除到另一个挂载的目录)。这个选项会阻止这种跨文件系统的删除。
  • –no-preserve-root:默认情况下,rm 命令不会删除根目录(/)。这个选项允许删除根目录及其内容,这是一个非常危险的操作,需要极高的权限(通常是 root 权限),并且强烈不建议使用。
  • -d, --dir:删除空目录。当需要删除空目录而不想递归删除其下的内容时,这个选项很有用。注意,这不同于 -r,-r 可以删除非空目录。
  • –preserve-root:这个选项实际上并不是 rm 命令的直接选项,但提到它是因为它用于防止意外删除根目录。一些系统可能默认设置了 rm 的别名来包含 --preserve-root 选项,以确保即使是以 root 用户身份运行,也不能删除根目录。

那文件夹里面有文件的这种情况, 或者是移除单个文件的情况, 我们都能用 rm 来实现.

  • rm file1 移除单个文件
  • rm -i 有提示地移除文件 (为了避免误删),每个要移除的文件都进行提示
  • rm -I 有提示地移除文件 (为了避免误删),超过3个文件才进行提示
  • rm -r folder 或者 rm -R folder 可以在文件夹中有文件的情况下删除这个文件夹
  • rm -rf xxx 递归强制删除
  • rm -rf -v xxx Remove with Verbose Information,删除带有子目录的目录会提供详细信息
  • rm -r -i xxx 删除确认,yes or no

经常在删除文件时会碰到 Device or Resource is busy 的情况,这个时候尝试用下面的方法:

  • 使用 ps 和 kill 命令查看并删除相应的进程,时候再执行rm删除操作

  • 使用lsof命令查看使用该文件并用kill删除,再执行rm操作

  • 使用fuser -kvm /mnt/test命令,再执行rm操作

    • k参数: 缩写kill
    • v参数: 详细输出
    • m参数: 表面指定的路径为挂载点

除了 rm,还可以用 find

  • 使用find命令结合-exec命令来删除
find /tmp -type f -exec rm -rf {} \;
  • 使用find命令结合xargs命令来删除
find /tmp -type f | xargs rm -rf

文件太多的话(rsync命令快速删除大目录)

#先创建一个空目录
mkdir /usr/local/newdata/#执行删除,原理是用新的空目录替换要删掉的目录(/usr/local/olddata/为要删掉的目录)
rsync --delete-before -d /usr/local/newdata/ /usr/local/olddata/#执行完删除操作后,新建目录和要删掉的目录都变成空的了,可以把刚才新建的目录也删掉
rm -rf /usr/local/newdata/

使用 rsync 命令就会发现,删掉几十 G 的目录瞬间就可以搞定了。

rsync --delete-before -avH --progress --stats /tmp/ /2b_del_dir/

参数说明

-d --dirs :以不递归的方式拷贝目录本身。默认递归时,如果源为"dir1/file1",则不会拷贝dir1目录,使用该选项将拷贝dir1但不拷贝file1。-a:        归档模式-v:        显示全部过程-H:        保持硬链接文件-progress    在传输时显示传输过程

4、>

在 Linux 上使用重定向符(>)创建一个文件

> bryant.txt

5、touch 新建文件

touch 能够新建文件,mkdir 用来新建文件夹

  • touch file1 建立一个文件
  • touch file1 file2 file3建立多个文件

touch 命令常用于将每个文件的访问和修改时间更新为当前时间

如果指定的文件名不存在,将会创建一个新的文件。

touch 不允许我们在创建文件的同时向其中输入一些文本。它默认创建一个 0KB 的空文件。

下面的描述是错误的

在这里插入图片描述

灵活应用

touch 现有的.cpp # 刷新文件时间

可编译

6、mv(move)

1)移动去另一个文件夹

mv source destination

-f :force 强制癿意忠,如果目标档案已经存在,不会询问而直接覆盖;
-i :若 destination 已经存在时,就会询问是否覆盖!
-u :若目标档案已经存在, source 比较新,才会 update
-n:不覆盖已存在的文件

2)重命名文件

因为移动文件到原始的地点, 但是以不同的文件名. 这种做法不就是在重命名嘛!
mv file1 file1rename


补充,有时候转移的文件较多时,会出现 Argument list too long,使用 cp 复制命令时也同样会出现该警示

其中一种解决方法是配合 * 来转移文件名中有共性的文件,

例如 mv 1*.jpg 来移动文件名以 1 开头的图片

另外一种方法是配合 find 来转移

find sourcePath/ -name "*.txt"  -exec mv {} targetPath/  \;
#or
find sourcePath/ -type f  -exec mv {} targetPath/  \;

注意:结束符 \; 不能省,不过该方法速度偏慢

参考:linux: Argument list too long

7、cp(copy)

在 Linux 系统中,cp 命令是用于复制文件或目录的常用命令。它提供了多个参数来支持不同的复制需求和行为。

覆盖文件,加上 \ 就不会提示 yes or no,cp 等同于 cp -i

\cp 源文件 目标文件

cp 源文件1 源文件2 源文件3 ... 目标目录,复制多个文件

常用参数

  • -a, --archive
    归档模式复制,保留文件的所有属性,包括链接、文件属性,并递归地复制目录。这相当于-dR --preserve=all的组合。
  • -r, --recursive
    递归复制目录及其中的所有文件和子目录。如果源文件是一个目录,则使用该参数可以复制整个目录树。
  • -p, --preserve
    保留文件的属性,如权限、所有者、时间戳等。这是复制文件时保持文件特性的常用选项。
  • -u, --update
    仅复制源文件比目标文件新或目标文件不存在的文件。这有助于更新目标目录中的文件,而不覆盖较新的文件。
  • -l, --link
    创建硬链接而不是复制文件。硬链接指向文件系统中的相同数据块,因此删除其中一个链接不会影响其他链接。注意,硬链接只能在同一文件系统中创建。
  • -s, --symbolic-link
    创建符号链接(软链接)而不是复制文件。符号链接是一个特殊的文件,它包含对另一个文件或目录的引用。
  • -i, --interactive
    在覆盖目标文件之前提示用户确认。这有助于防止意外覆盖重要文件。
  • -v, --verbose
    显示详细的复制过程信息,包括复制的文件名和目录。这有助于了解复制操作的具体细节。
  • -f, --force
    强制复制文件,即使目标文件已经存在且无法覆盖。这通常用于脚本中,以避免因文件已存在而导致的错误。
  • -b, --backup
    在覆盖目标文件之前,先创建目标文件的备份。这有助于保留文件的旧版本,以防需要恢复。
  • –parents
    复制文件时保留文件的目录结构,即在目标目录下创建源文件的相对路径。这有助于保持文件原有的组织结构。

注意事项

  • 在使用 cp 命令时,请确保目标文件或目录具有足够的权限,以便能够成功复制文件。
  • cp 命令可以复制链接文件,但不会复制链接指向的实际文件或目录。
  • 如果目标目录不存在,使用 -r 参数复制目录时,会自动创建目标目录。
  • 通过合理使用这些参数,可以根据不同的需求进行灵活的文件和目录复制操作。

eg:

  • cp 老文件 新文件
    如果新文件已存在,上面指令中老文件会直接覆盖新文件,为了避免这种情况,用如下指令
  • cp -i 老文件 新文件
    这样,如果新文件已存在会提示你是否 overwrite新文件,回答 yesYESy 同意覆盖,回车或其他字母放弃覆盖
  • cp file1 folder1/ 文件复制去文件夹
  • cp -R folder1/ folder2/ 复制文件夹,加一个 -R(recursive),表示递归的将 folder1 中的所有文件复制到 folder2中
  • cp file* folder2/ 复制多个文件. 复制名字部分相同的多个文件, * 是说”你就找文件前面是 file 的文件, 后面是什么名字无所谓”。后缀相同也行 cp *4 folder2/
  • cp file1copy file2 folder1/ 复制多个文件,cp 会默认最后一个选项是要复制去的文件夹

相关文章:

【Linux】learning notes(3)make、copy、move、remove

文章目录 1、mkdir (make directory)2、rmdir (remove directory)3、rm(remove)4、>5、touch 新建文件6、mv(move)7、cp(copy) 1、mkdir (make…...

一、图像图像的基本概念

文章目录 一、分辨率概念二、图形图像的区别三、位图和矢量图的区别 一、分辨率概念 图形显示计数中的分辨率概念有三种,即屏幕分辨率、显示分辨率和显卡分辨率。它们既有区别又有着密切的联系,对图形显示的处理有极大的影响。 1.屏幕分辨率 显示器分辨…...

两道算法练习

力扣322零钱兑换 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬币的…...

利用 Python 爬虫进行跨境电商数据采集

1 引言2 代理IP的优势3 获取代理IP账号4 爬取实战案例---(某电商网站爬取)4.1 网站分析4.2 编写代码4.3 优化代码 5 总结 1 引言 在数字化时代,数据作为核心资源蕴含重要价值,网络爬虫成为企业洞察市场趋势、学术研究探索未知领域…...

设计模式--spring中用到的设计模式

一、单例模式(Singleton Pattern) 定义:确保一个类只有一个实例,并提供全局访问点 Spring中的应用:Spring默认将Bean配置为单例模式 案例: Component public class MySingletonBean {// Spring 默认将其…...

Qt控件中函数指针使用的最终版本,使用std::function

代码&#xff1a; class MyWidget : public QWidget { public:std::function<void(QResizeEvent* event)> pf_resizeEvent 0; protected:inline void resizeEvent(QResizeEvent* event) override {if (pf_resizeEvent ! 0)pf_resizeEvent(event);} };int main(int arg…...

Java中的泛型类 --为集合的学习做准备

学习目标 ● 掌握在集合中正确使用泛型 ● 了解泛型类、泛型接口、泛型方法 ● 了解泛型上下限 ● 了解基本的使用场景 1.有关泛型 1.1泛型的概念 泛型&#xff08;Generics&#xff09;是Java中引入的参数化类型机制&#xff0c;允许在定义类、接口或方法时使用类型参数&a…...

6.6.6 嵌入式SQL

文章目录 2个核心问题识别SQL语句主语言和SQL通信完整导图 2个核心问题 SQL语句嵌入高级语言需要解决的2个核心问题是&#xff1a;如何识别嵌入语句&#xff1f;如何让主语言&#xff08;比如C,C语言&#xff09;和SQL通信&#xff1f; 识别SQL语句 为了识别主语言中嵌入的SQL…...

基于C#的CANoe CLR Adapter开发指南

一、引言 CANoe 是一款广泛应用于汽车电子开发和测试的工具&#xff0c;它支持多种编程接口&#xff0c;方便开发者进行自定义扩展。CANoe CLR Adapter 允许我们使用 C# 语言与 CANoe 进行交互&#xff0c;充分利用 C# 的强大功能和丰富的类库。本文将详细介绍如何基于 C# 进行…...

【Qt】MVC设计模式

目录 一、搭建MVC框架 二、创建数据库连接单例类SingleDB 三、数据库业务操作类model设计 四、control层&#xff0c;关于model管理类设计 五、view层即为窗口UI类 一、搭建MVC框架 里面的bin、lib、database文件夹以及sqlite3.h与工程后缀为.pro文件的配置与上次发的文章…...

【手撕算法】支持向量机(SVM)从入门到实战:数学推导与核技巧揭秘

摘要 支持向量机&#xff08;SVM&#xff09;是机器学习中的经典算法&#xff01;本文将深入解析最大间隔分类原理&#xff0c;手撕对偶问题推导过程&#xff0c;并实战实现非线性分类与图像识别。文中附《统计学习公式手册》及SVM调参指南&#xff0c;助力你掌握这一核心算法…...

JAVA面试常见题_基础部分_Dubbo面试题(上)

Dubbo 支持哪些协议&#xff0c;每种协议的应用场景&#xff0c;优缺点&#xff1f; • dubbo&#xff1a; 单一长连接和 NIO 异步通讯&#xff0c;适合大并发小数据量的服务调用&#xff0c;以及消费者远大于提供者。传输协议 TCP&#xff0c;异步&#xff0c;Hessian 序列化…...

CSS—隐藏元素:1分钟掌握与使用隐藏元素的方法

个人博客&#xff1a;haichenyi.com。感谢关注 1. 目录 1–目录2–display:none3–visibility: hidden4–opacity: 05–position: absolute;与 left: -9999px;6–z-index 和 position7–clip-path: circle(0%) 2. display:none 标签会挂载在html中&#xff0c;但是不会在页面上…...

二、双指针——5. 移动零

二、双指针——5. 移动零 题目描述示例示例1&#xff1a;示例2&#xff1a; 思路代码 题目描述 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操…...

论文笔记-NeurIPS2017-DropoutNet

论文笔记-NeurIPS2017-DropoutNet: Addressing Cold Start in Recommender Systems DropoutNet&#xff1a;解决推荐系统中的冷启动问题摘要1.引言2.前言3.方法3.1模型架构3.2冷启动训练3.3推荐 4.实验4.1实验设置4.2在CiteULike上的实验结果4.2.1 Dropout率的影响4.2.2 实验结…...

php 对接mqtt 完整版本,订阅消息,发送消息

首先打开链接如何在 PHP 项目中使用 MQTT 根据文章让所用依赖安装一下&#xff1a; composer require php-mqtt/client 安装之后弄一个部署 之后在工具里边可以相应链接上 接下来是代码&#xff1a; /**** 订阅消息* return void* throws \PhpMqtt\Client\Exceptions\Confi…...

谈谈 ES 6.8 到 7.10 的功能变迁(6)- 其他

这是 ES 7.10 相较于 ES 6.8 新增内容的最后一篇&#xff0c;主要涉及算分方法和同义词加载的部分。 自定义算分&#xff1a;script_score 2.0 Elasticsearch 7.0 引入了新一代的函数分数功能&#xff0c;称为 script_score 查询。这一新功能提供了一种更简单、更灵活的方式来…...

【苍穹外卖】问题笔记

【DAY1 】 1.VCS找不到 好吧&#xff0c;发现没安git 接着发现安全模式有问题&#xff0c;点开代码信任此项目 2.导入初始文件&#xff0c;全员爆红 好像没maven&#xff0c;配一个 并在设置里设置好maven 3.启用注解&#xff0c;见新手苍穹 pom.xml改lombok版本为1.1…...

脑机接口SSVEP 信号特征提取技术术语

目录 背景简介 1. 最小能量组合&#xff08;MEC&#xff09;和最大对比组合&#xff08;MCC&#xff09; 2. 典型相关分析&#xff08;CCA&#xff09; 3. 滤波器组CCA&#xff08;FBCCA&#xff09; 4. 二进制子带CCA&#xff08;BsCCA&#xff09; 5. 融合CCA&#xff…...

【Veristand】Veristand 预编写教程目录

很久没有更新&#xff0c;最近打算出一期Veristand教程&#xff0c;暂时目录列成下面这个表格&#xff0c;如果各位有关心的遗漏的点&#xff0c;可以在评论区提问&#xff0c;我后期可以考虑添加进去&#xff0c;但是提前声明&#xff0c;太过小众的点我不会&#xff0c;欢迎各…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...