当前位置: 首页 > 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;欢迎各…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

MySQL JOIN 表过多的优化思路

当 MySQL 查询涉及大量表 JOIN 时&#xff0c;性能会显著下降。以下是优化思路和简易实现方法&#xff1a; 一、核心优化思路 减少 JOIN 数量 数据冗余&#xff1a;添加必要的冗余字段&#xff08;如订单表直接存储用户名&#xff09;合并表&#xff1a;将频繁关联的小表合并成…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...