在 Linux 中重命名文件和目录

图片

目录

前言

使用 mv 命令重命名文件和目录

通过组合 mv、find 和 exec 命令重命名与某个模式匹配的多个文件

使用 rename 命令轻松重命名多个文件

总结


前言

在这篇基本命令行教程中,你将学习在 Linux 终端重命名文件和目录的各种方法。

如何在 Linux 终端中重命名文件和目录?你可以使用 mv 命令。

是的,与用于将文件和文件夹从一个位置“移动”到另一个位置的 mv 命令相同。

你可以在“移动文件和目录”时简单地指定文件和目录的新名称。

要重命名文件,请使用:

mv old_file new_file

同样,要重命名目录,请使用:

mv old_dir new_dir

听起来很容易,对吧? 但我将在这里详细讨论文件重命名:

◈ 向你展示重命名的实际示例

◈ 显示通过结合 find 和 exec 命令批量重命名多个文件的示例

◈ 讨论用于批量重命名文件的专用程序

我们来一一看看。

使用 mv 命令重命名文件和目录

使用 mv 命令重命名同一目录中的文件:

mv file1.txt file2.txt

同样,你可以重命名同一位置的目录:

mv dir1 dir2

这是我重命名文件和目录的示例:

图片

如你所见,与 cp 命令itsfoss.com 不同,你不必使用递归选项来通过 mv 命令linuxhandbook.com 处理目录。

🚧 如果你尝试使用相同的名称重命名该文件,你会看到一个错误(显然)。

你还可以在将文件移动到另一个位置时重命名它:

mv old-file-name another_dir/new-file-name

在下面的示例中,我将名为 firefox-quiz.txt 的文件移动到示例目录。在这样做的同时,我将其重命名为 quiz.txt

图片

我将其视为剪切粘贴操作。

💡 虽然你可以将多个文件移动到另一个位置(mv file1 file2 file2 dir),但你不能使用 mv 重命名多个文件。为此,你必须采用我在以下部分中讨论的其他策略。

通过组合 mv、find 和 exec 命令重命名与某个模式匹配的多个文件

🚧 批量重命名此类文件时要格外小心。一步错误的举动就会导致无法挽回的不良结果。

find 命令用于根据文件名、类型、修改时间和其他参数在给定目录中查找文件。exec 命令与 findlinuxhandbook.com 结合使用,对 find 命令的结果执行命令。

使用 findexec 和 mv 命令没有固定标准的结构。你可以根据需要组合它们。

假设你想通过在名称中添加 _old 来重命名当前目录中以 .txt 结尾的所有文件。所以 file_1.txt 变成 file_1.txt_old 等等。

find . -type f -name "*.txt" -exec mv {} {}_old ;

图片

这只是一个示例,你的重命名要求可能会有所不同。另外,以上仅适用于不带空格的文件名。

专业提示:在处理这样的批量操作时,你可以巧妙地使用 echo 命令来查看将执行什么操作,而不是实际执行它。如果看起来不错,那就采取实际行动吧。

例如,首先查看哪些文件将被重命名:

find . -type f -name "*.txt" -exec echo mv {} {}_old \;

图片

如你所见,实际上没有重命名任何文件。但是,如果你在没有使用回显(echo)命令的情况下运行上述命令,你将看到将执行什么命令。

如果你觉得没问题,请删除 echo 命令并继续进行实际的重命名。

find . -type f -name "*.txt" -exec mv {} {}_old \;

我在 《Efficient Linux 命令行》一书中学到了这个技巧。一本充满了这样的小宝石的优秀书。难怪它已成为 我最喜欢的 Linux 书籍itsfoss.com之一。

使用 rename 命令轻松重命名多个文件

有一个名为 rename 的便捷命令行程序,可用于根据给定的 Perl 正则表达式模式批量重命名文件。

该实用程序不是 GNU 工具链的一部分,也不是预安装的。因此,你必须首先使用发行版的包管理器来安装它。

对于 Debian/Ubuntu,命令为:

sudo apt install rename

你可以通过以下方式使用它:

rename [options] perl_regex [files]

选项有:

◈ -v : 详细模式

◈ -n :无操作,显示将被重命名的文件,但不重命名它们

◈ -o : 不覆盖

◈ -f : 强制覆盖现有文件

◈ -s : 不重命名软链接,只重命名其目标

现在,让我们采用你在上一节中看到的相同示例。将 *.txt 重命名为 .txt_old

rename 's/\.txt$/.txt_old/' **

我不打算在这里解释正则表达式。** 表示查看所有子目录中的所有文件。

图片

正如你所看到的,它按预期工作。

总结

我希望你喜欢这个技巧,它可以帮助你学习在 Linux 命令行中执行基本任务。当然是针对那些想学习和使用命令行的人。桌面用户始终拥有用于此类任务的 GUI 工具。

如果你对 Linux 命令完全陌生,本系列将对你有很大帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/188710.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Sublime Text 3 安装离线插件 anaconda

1 下载 Sublime Text 3 免安装版 Download - Sublime Text 2 下载 Package Control,放到 Sublime Text Build 3211\Data\Installed Packages 目录下。 Installation - Package Control 3 页面搜索 anaconda anaconda - Search - Package Control Anaconda - Pac…

彩纸屋在线少儿编程源码/scratch在线编程系统/培训管理系统源码/在线培训系统源码PHP

源码简介: 彩纸屋在线少儿编程源码,它是scratch在线编程系统,作为培训管理系统源码/在线培训系统源码,采用PHP源码。 彩纸屋是全国首家提供scratch开源定制和少儿编程培训管理系统源代码的服务商,彩纸屋提供的scratc…

WebGL/threeJS面试题扫描与总结

什么是 WebGL?什么是 Three.js?请解释three.js中的WebGL和Canvas的区别? WebGL(全写Web Graphics Library)是一种3D绘图协议,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的一个…

WordPress安装AWS插件实现文本转语音功能

适用于 WordPress 的 AWS 插件示例演示了内容创建者如何轻松地为所有书面内容添加文本转语音功能。随着语音搜索的不断增加,以音频格式提供更多网站内容变得至关重要。通过添加语音功能,网站访客可以通过在线音频播放器和播客应用程序等新渠道使用您的内…

单调栈 模板

class Solution { public: //从后往前的方法 vector<int> dailyTemperatures(vector<int>& temperatures) {int n temperatures.size();vector<int> ans(n);//创建一个大小为n的数组stack<int> st;//这个时候栈中没有任何元素for(int i n-1;i &g…

4面试题--数据库(mysql)

执⾏⼀条 select / update 语句&#xff0c;在 MySQL 中发⽣了什么&#xff1f; Server 层负责建⽴连接、分析和执⾏ SQL。MySQL ⼤多数的核⼼功能模块都在这实现&#xff0c;主要包括 连接器&#xff0c;查询缓存&#xff08;8.0版本去除&#xff0c;因为每次更新将会清空该…

使用 STM32 读取和解析 NTC 热敏电阻的数值

本文介绍了如何利用 STM32 微控制器读取和解析 NTC&#xff08;Negative Temperature Coefficient&#xff09;热敏电阻的数值。首先&#xff0c;我们将简要介绍 NTC 热敏电阻的原理和特性。接下来&#xff0c;我们将详细讨论如何设计电路连接和采用合适的 STM32 外设进行数值读…

如何在GO中写出准确的基准测试

一般来说&#xff0c;我们不应该对性能进行猜测。在编写优化时&#xff0c;会有许多因素可能起作用&#xff0c;即使我们对结果有很强的看法&#xff0c;测试它们很少是一个坏主意。然而&#xff0c;编写基准测试并不简单。很容易编写不准确的基准测试&#xff0c;并且基于这些…

从0到0.01入门 Webpack| 008.精选 Webpack面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

机器学习算法——主成分分析(PCA)

目录 1. 主体思想2. 算法流程3. 代码实践 1. 主体思想 主成分分析&#xff08;Principal Component Analysis&#xff09;常用于实现数据降维&#xff0c;它通过线性变换将高维数据映射到低维空间&#xff0c;使得映射后的数据具有最大的方差。主成分可以理解成数据集中的特征…

JDK源码系列:StringBuffer与StringBuilder对比

一、源码分析StringBuffer与StringBuilder的区别 1、StringBuffer是多线程安全的&#xff0c;StringBuilder是多线程不安全的 多线程安全指的是 多个线程同时对一个对象进行append 等操作&#xff0c;不会出现覆盖、丢失的情况。 看下StringBuffer是如何做到多线程安全的&#…

思维模型 波纹效应

本系列文章 主要是 分享 思维模型&#xff0c;涉及各个领域&#xff0c;重在提升认知。小变化&#xff0c;大影响。 1 波纹效应的应用 1.1 波纹效应在市场中的应用 2008 年&#xff0c;美国金融危机爆发&#xff0c;导致全球经济陷入衰退。这场危机的起因是美国房地产市场的崩…

一篇文章完成Hbase入门

文章目录 一、简介1、数据模型结构2、物理存储结构3、数据模型4、基本架构 二、安装1、下载解压安装包2、修改配置文件3、启动服务(单机、集群)4、配置高可用(HA) 三、命令行操作1、建表2、新增/更新数据3、查看表数据4、删除数据5、修改默认保存的数据版本 四、架构1、RegionS…

在 STM32 上实现温度补偿和校正

本文介绍了如何在 STM32 微控制器上实现温度补偿和校正&#xff0c;以提高温度传感器的测量精度。首先&#xff0c;我们将简要介绍温度补偿和校正的原理和目的。然后&#xff0c;我们将详细讨论在 STM32 上实现温度补偿和校正的步骤和方法。同时&#xff0c;提供了一个简单的示…

FPGA模块——SPI协议(读写FLASH)

FPGA模块——SPI协议&#xff08;读写FLASH&#xff09; &#xff08;1&#xff09;FLASH芯片 W25Q16BV&#xff08;2&#xff09;SPI协议&#xff08;3&#xff09;芯片部分命令1.Write Enable&#xff08;06h&#xff09;2.Chip Erase (C7h / 60h)3.写指令&#xff08;02h&am…

华为ospf路由协议防环和次优路径中一些难点问题分析

第一种情况是ar3的/0/0/2口和ar4的0/0/2口发布在区域1时&#xff0c;当ar1连接ar2的线断了以后&#xff0c;骨干区域就断了&#xff0c;1.1.1.1到2.2.2.2就断了&#xff0c;ping不通了。但ar5和ar6可以ping通2.2.2.2和1.1.1.1&#xff0c;ar3和ar4不可以ping通2.2.2.2和1.1.1.1…

中伟视界:AI智能分析盒子实现全方位人车监测,保障管道安全

在油气管道长又无人的场景下&#xff0c;人和车的监测问题一直是一个难题。传统的监测手段往往存在盲区和误报问题&#xff0c;给管道运行安全带来了一定的隐患。然而&#xff0c;随着人工智能技术的不断发展&#xff0c;利用AI盒子的智能分析算法可以有效解决这一问题。 首先&…

【从浅识到熟知Linux】基本指定之cat、more和less

&#x1f388;归属专栏&#xff1a;从浅学到熟知Linux &#x1f697;个人主页&#xff1a;Jammingpro &#x1f41f;每日一句&#xff1a;写完这篇我要去吃晚饭啦&#xff01;&#xff01; 文章前言&#xff1a;本文介绍cat、more和less指令三种查看文件的用法并给出示例和截图…

MUYUCMS v2.1:一款开源、轻量级的内容管理系统

MuYuCMS&#xff1a;一款基于Thinkphp开发的轻量级开源内容管理系统&#xff0c;为企业、个人站长提供快速建站解决方案。它具有以下的环境要求&#xff1a; 支持系统&#xff1a;Windows/Linux/Mac WEB服务器&#xff1a;Apache/Nginx/ISS PHP版本&#xff1a;php > 5.6 (…

输出后,我悟了!

大家好&#xff0c;我是木川 今天和前同事吃饭聊天&#xff0c;谈到了输出&#xff0c;今天简单谈下关于输出的重要性 一、为什么要输出 1、不输出容易忘&#xff0c;如果不输出很容易就忘记了&#xff0c;如果再遇见一次&#xff0c;还是需要重新学习&#xff0c;实际上是浪费…