Redian新闻
>
终端基础:在 Linux 中重命名文件和目录 | Linux 中国

终端基础:在 Linux 中重命名文件和目录 | Linux 中国

科技
 
导读:在这篇基本命令行教程中,你将学习在 Linux 终端重命名文件和目录的各种方法。             
本文字数:2624,阅读时长大约:3分钟

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

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

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

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

要重命名文件,请使用:

  1. mv old_file new_file

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

  1. mv old_dir new_dir

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

◈ 向你展示重命名的实际示例
◈ 显示通过结合 find 和 exec 命令批量重命名多个文件的示例
◈ 讨论用于批量重命名文件的专用程序

我们来一一看看。

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

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

  1. mv file1.txt file2.txt

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

  1. mv dir1 dir2

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

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

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

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

  1. 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 等等。

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

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

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

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

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

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

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

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

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

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

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

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

对于 Debian/Ubuntu,命令为:

  1. sudo apt install rename

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

  1. rename [options] perl_regex [files]

选项有:

◈ -v : 详细模式
◈ -n :无操作,显示将被重命名的文件,但不重命名它们
◈ -o : 不覆盖
◈ -f : 强制覆盖现有文件
◈ -s : 不重命名软链接,只重命名其目标

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

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

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

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

总结

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

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

终端基础:Linux 终端入门

如果你有疑问或建议,请告诉我。


via: https://itsfoss.com/linux-rename-files-directories/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

LCTT 译者 :geekpi
💎💎💎💎
翻译: 2051.5 篇
|
贡献: 3682 天
2013-10-25
2023-11-24
https://linux.cn/lctt/geekpi
欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
App Fleet:在 Linux 上实现工作空间自动化的开源应用 | Linux 中国备受欢迎的数字音频工作站 Studio One 新增了对 Linux 的支持 | Linux 中国冰雪白通河 -- 01在 Linux 终端利用 Asciiquarium 打造海底世界 | Linux 中国Wolfi:改进云软件供应链的 Linux “非”发行版 | Linux 中国生日快乐,总统先生!他与中华人民共和国同生日...我国首例终端到终端低轨卫星通信测试成功;新疆自贸试验区总体方案公布丨科技早新闻媒体基础:打开多模态大模型的新思路登镇江北固山Linux 黑话解释:Linux 中的 Super 键是什么? | Linux 中国第七届北京国际短片联展 | AURORA曙光:在心灵修复之旅中重逢Wave:即使你讨厌命令行,也会喜欢的现代新 Linux 终端 | Linux 中国学习好的基础:“三好”彭博终端有妙招 | 彭博终端PM <GO>:高效完成投组再平衡(实操视频)使用 Btrfs 快照方便升级 Fedora Linux 且易于回退 | Linux 中国董宇辉清华大学演讲:小学重在陪伴,初中重在尊重,高中重在放手Linux 游戏的下一个秘密武器:Bottles Next | Linux 中国修复 Arch Linux 中的 “Bash: man command not found” 错误 | Linux 中国Vojtux:针对视力障碍用户改造 Linux | Linux 中国Linux 中的 ls 命令使用教程 | Linux 中国Linus Torvalds:Linux 内核中的 Rust、AI 和疲劳的维护者 | Linux 中国ChatGPT测试新版本,可上传文件和自动切换模式;苹果前员工研发无屏幕AI硬件产品:能够运行GPT-4丨AIGC日报Bazzite:专为 Steam Deck 和 PC 上的 Linux 游戏打造的发行版 | Linux 中国使用 dialog 和 jq 在 Linux 上编写高效终端 TUI | Linux 中国FreeDOS 基础:从 A 到 Z | Linux 中国彭博终端有妙招 | 彭博终端IN <GO>:覆盖各大资产类别,助您把握机遇!(实操视频)任务中心:一款流畅的 Linux 系统监控应用 | Linux 中国游无锡蠡园如何制作一个 Linux Mint 立付 USB | Linux 中国首款 Linux 游戏本?!Tuxedo 推出 Linux 游戏本 Sirius 16终端基础:Linux 终端中的目录切换 | Linux 中国红色日记 学《实践论》 1971年 22岁 7.1-10Linux 内核动手编译实用指南 | Linux 中国基辛格逝世,中国驻美大使发表署名文章→故障排除:在 Arch Linux 上启用蓝牙 | Linux 中国
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。