【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
新文件,回答yes
、YES
、y
同意覆盖,回车或其他字母放弃覆盖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
代码: 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泛型的概念 泛型(Generics)是Java中引入的参数化类型机制,允许在定义类、接口或方法时使用类型参数&a…...

6.6.6 嵌入式SQL
文章目录 2个核心问题识别SQL语句主语言和SQL通信完整导图 2个核心问题 SQL语句嵌入高级语言需要解决的2个核心问题是:如何识别嵌入语句?如何让主语言(比如C,C语言)和SQL通信? 识别SQL语句 为了识别主语言中嵌入的SQL…...

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

【Qt】MVC设计模式
目录 一、搭建MVC框架 二、创建数据库连接单例类SingleDB 三、数据库业务操作类model设计 四、control层,关于model管理类设计 五、view层即为窗口UI类 一、搭建MVC框架 里面的bin、lib、database文件夹以及sqlite3.h与工程后缀为.pro文件的配置与上次发的文章…...
【手撕算法】支持向量机(SVM)从入门到实战:数学推导与核技巧揭秘
摘要 支持向量机(SVM)是机器学习中的经典算法!本文将深入解析最大间隔分类原理,手撕对偶问题推导过程,并实战实现非线性分类与图像识别。文中附《统计学习公式手册》及SVM调参指南,助力你掌握这一核心算法…...

JAVA面试常见题_基础部分_Dubbo面试题(上)
Dubbo 支持哪些协议,每种协议的应用场景,优缺点? • dubbo: 单一长连接和 NIO 异步通讯,适合大并发小数据量的服务调用,以及消费者远大于提供者。传输协议 TCP,异步,Hessian 序列化…...

CSS—隐藏元素:1分钟掌握与使用隐藏元素的方法
个人博客: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中,但是不会在页面上…...
二、双指针——5. 移动零
二、双指针——5. 移动零 题目描述示例示例1:示例2: 思路代码 题目描述 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操…...

论文笔记-NeurIPS2017-DropoutNet
论文笔记-NeurIPS2017-DropoutNet: Addressing Cold Start in Recommender Systems DropoutNet:解决推荐系统中的冷启动问题摘要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 根据文章让所用依赖安装一下: composer require php-mqtt/client 安装之后弄一个部署 之后在工具里边可以相应链接上 接下来是代码: /**** 订阅消息* return void* throws \PhpMqtt\Client\Exceptions\Confi…...
谈谈 ES 6.8 到 7.10 的功能变迁(6)- 其他
这是 ES 7.10 相较于 ES 6.8 新增内容的最后一篇,主要涉及算分方法和同义词加载的部分。 自定义算分:script_score 2.0 Elasticsearch 7.0 引入了新一代的函数分数功能,称为 script_score 查询。这一新功能提供了一种更简单、更灵活的方式来…...

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

脑机接口SSVEP 信号特征提取技术术语
目录 背景简介 1. 最小能量组合(MEC)和最大对比组合(MCC) 2. 典型相关分析(CCA) 3. 滤波器组CCA(FBCCA) 4. 二进制子带CCA(BsCCA) 5. 融合CCAÿ…...
【Veristand】Veristand 预编写教程目录
很久没有更新,最近打算出一期Veristand教程,暂时目录列成下面这个表格,如果各位有关心的遗漏的点,可以在评论区提问,我后期可以考虑添加进去,但是提前声明,太过小众的点我不会,欢迎各…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...

用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...

JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)
题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...