Linux笔记之删除指定目录下除最新修改的以 .pack 为扩展名的文件之外的所有文件
code review!
文章目录
- 1.Linux笔记之删除指定目录下除最新修改的以 .pack 为扩展名的文件之外的所有文件
- 2.将指定目录下除最新修改的以 .pack 为扩展名的文件之外的所有文件移动到另一个目录
- 3.xargs:用于从标准输入中读取数据,并将其作为参数传递给指定的命令
- 4.xargs和awk区别
1.Linux笔记之删除指定目录下除最新修改的以 .pack 为扩展名的文件之外的所有文件
这段代码是使用C++语言编写的,它执行了一系列命令来删除指定目录下的旧文件。让我逐行解释代码的功能:
-
首先,声明并初始化了一个名为
cmd
的std::string
变量,用于存储要执行的命令。命令的内容是一个字符串,它由多个子命令以管道符(|
)连接而成。std::string cmd = "ls -t "+ pack_path + "/*.pack | tail -n +2 | xargs rm"; ```- `ls -t`:这个子命令是用于列出指定目录下的文件和目录,并按照修改时间的倒序排列。 - `pack_path`:这是一个变量,用于指定目录的路径。它将被拼接到命令中的`/*.pack`之前,表示要列出以`.pack`为扩展名的文件。 - `/*.pack`:这个子命令是用于匹配指定目录下以`.pack`为扩展名的文件。 - `tail -n +2`:这个子命令是用于从输入中提取第2行及其之后的内容。在这里的作用是跳过第一行的文件(即最新修改的文件)。 - `xargs rm`:这个子命令是用于将前面的输出作为参数传递给`rm`命令,从而删除相应的文件。
-
接下来,使用
system
函数执行存储在cmd
变量中的命令。system(cmd.c_str()); `````cmd.c_str()`将`cmd`变量转换为C风格的字符串,然后`system`函数将该字符串作为参数传递给操作系统来执行对应的命令。
综上所述,这段代码的作用是列出指定目录下以.pack
为扩展名的文件,根据修改时间的倒序排列,然后删除除最新修改的文件之外的所有文件。
2.将指定目录下除最新修改的以 .pack 为扩展名的文件之外的所有文件移动到另一个目录
这段代码是使用C++语言编写的,它执行了一系列命令来移动指定目录下的旧文件到另一个目录。让我逐行解释代码的功能:
-
首先,声明并初始化了一个名为
cmd
的std::string
变量,用于存储要执行的命令。命令的内容是一个字符串,它由多个子命令以管道符(|
)连接而成。std::string cmd = "ls -t "+ pack_path + "/*.pack | tail -n +2 | xargs -I{} mv {} " + new_pack_path; ```- `ls -t`:这个子命令是用于列出指定目录下的文件和目录,并按照修改时间的倒序排列。 - `pack_path`:这是一个变量,用于指定目录的路径。它将被拼接到命令中的`/*.pack`之前,表示要列出以 `.pack` 为扩展名的文件。 - `/*.pack`:这个子命令是用于匹配指定目录下以 `.pack` 为扩展名的文件。 - `tail -n +2`:这个子命令是用于从输入中提取第2行及其之后的内容。在这里的作用是跳过第一行的文件(即最新修改的文件)。 - `xargs -I{}`:这个子命令是用于将前面的输出作为参数传递给`mv`命令,并使用`{}`作为占位符,将每个文件名依次替换到`{}`的位置。 - `mv {}`:这个子命令是用于移动文件,`{}`将被实际的文件名替换。 - `new_pack_path`:这是一个变量,用于指定目标目录的路径。它将被拼接到命令的末尾,表示要将文件移动到这个目录。
-
接下来,使用
system
函数执行存储在cmd
变量中的命令。system(cmd.c_str()); `````cmd.c_str()`将`cmd`变量转换为C风格的字符串,然后`system`函数将该字符串作为参数传递给操作系统来执行对应的命令。
综上所述,这段代码的作用是列出指定目录下以.pack
为扩展名的文件,根据修改时间的倒序排列,然后将除最新修改的文件之外的所有文件移动到另一个目录。
3.xargs:用于从标准输入中读取数据,并将其作为参数传递给指定的命令
xargs
是一个命令行工具,用于从标准输入中读取数据,并将其作为参数传递给指定的命令。它可以将输入数据分割为单个参数,并将这些参数传递给命令进行处理。让我们详细解释xargs
的用法和功能。
基本语法:
xargs [选项] [命令]
常用选项:
-I{替换字符串}
:指定一个占位符,用于替换输入中的每个参数。通常使用{}
作为占位符,可以在命令中多次出现以表示不同的参数位置。-n 数字
:指定每次执行命令时传递的参数个数。默认情况下,xargs
将尽可能多地传递参数,但可以使用-n
选项限制每次传递的参数个数。-t
:显示要执行的命令,但不实际执行。-p
:在执行每个命令之前提示用户确认。
使用示例:
-
基本用法:将输入作为命令参数传递。
echo "file1 file2 file3" | xargs rm ``` 上述命令将字符串`file1 file2 file3`通过管道传递给`xargs`,然后`xargs`将其作为参数传递给`rm`命令,相当于执行了`rm file1 file2 file3`。
-
通过
-I
选项替换占位符:echo "file1 file2 file3" | xargs -I{} mv {} dest/ ``` 上述命令将字符串`file1 file2 file3`通过管道传递给`xargs`,然后`xargs`使用`-I{}`选项将每个参数替换为`{}`占位符,并将其作为参数传递给`mv`命令,相当于执行了`mv file1 dest/`、`mv file2 dest/`和`mv file3 dest/`。
-
限制每次传递的参数个数:
echo "file1 file2 file3 file4 file5" | xargs -n 2 rm ``` 上述命令将字符串`file1 file2 file3 file4 file5`通过管道传递给`xargs`,然后`xargs`使用`-n 2`选项,每次将两个参数传递给`rm`命令,相当于执行了`rm file1 file2`和`rm file3 file4`,最后一个参数`file5`单独执行了一次`rm`命令。
-
从文件中读取参数:
cat filelist.txt | xargs rm ``` 上述命令将文件`filelist.txt`的内容通过管道传递给`xargs`,然后`xargs`将每一行作为参数传递给`rm`命令,实现批量删除文件的功能。
这些只是xargs
命令的一些常见用法,它还有其他选项和功能可以根据需要进行调整和使用。请注意,当使用xargs
时,请确保输入的参数不包含特殊字符或空格,以避免意外行为。
4.xargs和awk区别
xargs
和awk
是两个不同的命令行工具,它们在处理输入数据和执行操作时有一些区别。
-
功能:
xargs
:主要用于从标准输入中读取数据,并将其作为参数传递给指定的命令。它可以将输入数据分割为单个参数,并将这些参数传递给命令进行处理。xargs
通常用于处理文件列表、批量执行命令等场景。awk
:是一种强大的文本处理工具,用于从输入文本中提取和处理数据。它基于行进行操作,并可以根据指定的规则和模式进行数据匹配、转换和输出。awk
通常用于处理结构化文本数据、数据分析和报告生成等任务。
-
数据处理:
xargs
:将输入数据作为参数传递给命令,每个参数通常是以空格或换行符分隔的文本。xargs
可以根据需要对输入进行分割和重组,然后将其传递给命令进行处理。awk
:以行为单位处理输入数据,可以根据指定的字段分隔符对每一行进行分割,并对每个字段进行操作。awk
提供了丰富的内置函数和操作符,可以进行数据过滤、转换、计算和格式化等操作。
-
使用场景:
xargs
:适用于需要将输入数据作为参数传递给命令进行处理的场景,如批量执行命令、删除文件、移动文件等。awk
:适用于需要对结构化文本数据进行处理和分析的场景,如数据提取、数据转换、数据筛选、报告生成等。
总结而言,xargs
主要用于处理命令行参数,将输入数据作为参数传递给命令执行,而awk
主要用于处理文本数据,对每一行进行分割和操作。它们在功能和使用场景上有所不同,可以根据具体需求选择合适的工具。
相关文章:
Linux笔记之删除指定目录下除最新修改的以 .pack 为扩展名的文件之外的所有文件
code review! 文章目录 1.Linux笔记之删除指定目录下除最新修改的以 .pack 为扩展名的文件之外的所有文件2.将指定目录下除最新修改的以 .pack 为扩展名的文件之外的所有文件移动到另一个目录3.xargs:用于从标准输入中读取数据,并将其作为参数传递给指定…...

什么是呼叫中心的语音通道?呼叫中心语音线路有几种?
什么是呼叫中心的语音通道? 呼叫中心的语音通道是指在呼叫中心中使用的语音信号传输通道,它是呼叫中心中至关重要的一部分,负责将客户的语音信息传递给客服代表,以及将客服代表的语音信息传递给客户。在呼叫中心的运营中…...
3D点云:平面模型上提取凸(凹)多边形方法
目录 一、实现原理 二、实现代码 三、运行结果 一、实现原理 首先要在点云中提取出潜在平面,对原始点云数据进行滤波,根据提取出的平面模型系数从滤波后的点云进行投影,然后根据投影后的点云计算其对应的二维凹(凸)多边形。 二、实现代码 #in...

论文笔记--A Fine-grained Interpretability Evaluation Benchmark for Neural NLP
论文笔记--A Fine-grained Interpretability Evaluation Benchmark for Neural NLP 1. 文章简介2. 文章概括3 文章重点技术3.1 数据收集3.2 数据扰动3.3 迭代标注和检查根因3.4 度量3.4.1 Token F1-score3.4.2 MAP(Mean Average Precision) 4. 文章亮点5. 原文传送门 1. 文章简…...

NFC和蓝牙在物联网中有什么意义?如何选择?
#NFC物联网# #蓝牙物联网# 在物联网中,NFC和蓝牙有什么意义? NFC在物联网中代表近场通信技术。它是一种短距离、高频的无线通信技术,可以在近距离内实现设备间的数据传输和识别。NFC技术主要用于移动支付、电子票务、门禁、移动身份识别、防…...

代码随想录二刷 |二叉树 | 二叉树的最小深度
代码随想录二刷 |二叉树 | 二叉树的最小深度 题目描述解题思路代码实现 题目描述 111.二叉树的最小深度 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子…...

云上守沪 | 云轴科技ZStack成功实践精选(上海)
为打造国际数字之都,上海发布数字经济发展“十四五”规划,围绕数字新产业、数据新要素、数字新基建、智能新终端等重点领域,加强数据、技术、企业、空间载体等关键要素协同联动,加快进行数字经济发展布局;加快基础软件…...

2023 IoTDB 用户大会成功举办,深入洞察工业互联网数据价值
2023 年 12 月 3 日,中国通信学会作为指导单位,Apache IoTDB Community、清华大学软件学院、中国通信学会开源技术委员会联合主办,“科创中国”开源产业科技服务团和天谋科技(北京)有限公司承办的 2023 IoTDB 用户大会…...

cache教程 3.HTTP服务器
上一节我们实现了单机版的缓存服务,但是我们的目标是分布式缓存。那么,我们就需要把缓存服务部署到多态机器节点上,对外提供访问接口。客户端就可以通过这些接口去实现缓存的增删改查。 分布式缓存需要实现节点间通信,而通信方法…...

redis应用-分布式锁
目录 什么是分布式锁 分布式锁的基本实现 引入过期时间 引入校验id 引入lua 引入看门狗 引入redlock算法 什么是分布式锁 在一个分布式系统中,也会涉及到多个节点访问同一个公共资源的情况,此时就需要通过锁来做互斥控制,避免出现类似于"线程安全"的问题. 而…...
51单片机程序
利用动态扫描和定时器1在数码管上显示出从765432开始以1/10秒的速度往下递减直至765398并保持显示此数,与此同时利用定时器O以500MS速度进行流水灯从土至下移动,当数码管上数减到停止时,实验板上流水灯也停止然后全部开始闪烁,3秒后ÿ…...

Android 分享小结
关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 目录 一、导读二、微信 分享 三、 QQ 、QQ空间(Qz…...

Ubunutu18.04 ROS melodic 无人机 XTDrone PX4 仿真平台配置
一、依赖安装 sudo apt install ninja-build exiftool ninja-build protobuf-compiler libeigen3-dev genromfs xmlstarlet libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev python-pip python3-pip gawk pip2 install pandas jinja2 pyserial cerberus pyulog0.7.0 n…...

JVM 命令行监控及诊断工具
面试题 你使用过Java虚拟机性能监控和故障处理工具吗?(美图) 怎么打出线程栈信息。(字节跳动) JVM诊断调优工具用过哪些? (京东) 怎么获取 Java 程序使用的内存?堆使用…...

飞天使-linux操作的一些技巧与知识点2
TCP 的三次握手 第一次,客户端与服务端建立链接,需要发送请求连接的消息 第二次,服务端接口到数据后,返回一个确认的操作*(至此客户端和服务端链路建立成功) 第三次,服务端还需要发送要与客户端…...

Android : 篮球记分器app _简单应用
示例图: 1.导包 在build.gradle 中 加入 // 使用androidx版本库implementation androidx.lifecycle:lifecycle-extensions:2.1.0-alpha03 2. 开启dataBinding android{...// 步骤1.开启data bindingdataBinding {enabled true}...} 3.写个类继承 ViewModel pac…...

音视频之旅 - 基础知识
图像基础知识 像素 像素是图像的基本单元,一个个像素就组成了图像。你可以认为像素就是图像中的一个点。在下面这张图中,你可以看到一个个方块,这些方块就是像素 分辨率 图像(或视频)的分辨率是指图像的大小或尺寸。…...

分类预测 | SSA-HKELM-Adaboost麻雀算法优化混合核极限学习机的数据分类预测
分类预测 | SSA-HKELM-Adaboost麻雀算法优化混合核极限学习机的数据分类预测 目录 分类预测 | SSA-HKELM-Adaboost麻雀算法优化混合核极限学习机的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.SSA-HKELM-Adaboost麻雀算法优化混合核极限学习机的数据分类…...

如何使用 Zotero 导出所选条目的 PDF 文件
如何使用 Zotero 导出所选条目的 PDF 文件 Zotero 是一款强大的参考文献管理工具,但它并不直接提供将整个文件夹导出为 PDF 的选项。不过,您可以使用以下步骤来导出您所选的 Zotero 条目中的 PDF 文件,无需额外的插件。 选择所需的 Zotero 条…...

minio的k8s的单机部署
minio的k8s的单机部署 apiVersion: apps/v1 kind: Deployment metadata:name: minionamespace: itshare spec:replicas: 1selector:matchLabels:app: miniotemplate:metadata:labels:app: miniospec:containers:- name: minioimage: minio/minio:RELEASE.2022-10-15T19-57-03Z…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官
。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
深入浅出Diffusion模型:从原理到实践的全方位教程
I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...