0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在Linux上使用简单的cp和mv命令来复制和重命名文件

Linux爱好者 来源:未知 作者:李倩 2018-06-25 14:02 次阅读

Linux 用户数十年来一直在使用简单的cp和mv命令来复制和重命名文件。这些命令是我们大多数人首先学到的,每天可能有数百万人在使用它们。但是还有其他技术、方便的方法和另外的命令,这些提供了一些独特的选项。

首先,我们来思考为什么你想要复制一个文件。你可能需要在另一个位置使用同一个文件,或者因为你要编辑该文件而需要一个副本,并且希望确保备有便利的备份以防万一需要恢复原始文件。这样做的显而易见的方式是使用像cp myfile myfile-orig这样的命令。

但是,如果你想复制大量的文件,那么这个策略可能就会变得很老。更好的选择是:

在开始编辑之前,使用tar创建所有要备份的文件的存档。

使用for循环来使备份副本更容易。

使用tar的方式很简单。对于当前目录中的所有文件,你可以使用如下命令:

$tar cf myfiles.tar *

对于一组可以用模式标识的文件,可以使用如下命令:

$tar cf myfiles.tar *.txt

在每种情况下,最终都会生成一个 myfiles.tar 文件,其中包含目录中的所有文件或扩展名为 .txt 的所有文件。

一个简单的循环将允许你使用修改后的名称来制作备份副本:

$forfile in *

> do

> cp$file$file-orig

> done

当你备份单个文件并且该文件恰好有一个长名称时,可以依靠使用 tab 来补全文件名(在输入足够的字母以便唯一标识该文件后点击 Tab 键)并使用像这样的语法将 -orig 附加到副本的名字后。

$cpfile-with-a-very-long-name{,-orig}

然后你有一个 file-with-a-very-long-name 和一个 file-with-a-very-long-name-orig。

在 Linux 上重命名文件

重命名文件的传统方法是使用 mv 命令。该命令将文件移动到不同的目录,或原地更改其名称,或者同时执行这两个操作。

$mv myfile /tmp

$mv myfile notmyfile

$mv myfile /tmp/notmyfile

但我们也有 rename 命令来做重命名。使用 rename 命令的窍门是习惯它的语法,但是如果你了解一些 Perl,你可能发现它并不棘手。

有个非常有用的例子。假设你想重新命名一个目录中的文件,将所有的大写字母替换为小写字母。一般来说,你在 Unix 或 Linux 系统上找不到大量大写字母的文件,但你可以有。这里有一个简单的方法来重命名它们,而不必为它们中的每一个使用 mv 命令。 /A-Z/a-z/ 告诉 rename 命令将范围 A-Z 中的任何字母更改为 a-z 中的相应字母。

$ls

Agenda Group.JPG MyFile

$rename'y/A-Z/a-z/' *

$ls

agenda group.jpg myfile

你也可以使用 rename 来删除文件扩展名。也许你厌倦了看到带有 .txt 扩展名的文本文件。简单删除这些扩展名 —— 用一个命令。

$ls

agenda.txt notes.txt weekly.txt

$rename's/.txt//' *

$ls

agenda notes weekly

现在让我们想象一下,你改变了心意,并希望把这些扩展名改回来。没问题。只需修改命令。窍门是理解第一个斜杠前的 s 意味着“替代”。前两个斜线之间的内容是我们想要改变的东西,第二个斜线和第三个斜线之间是改变后的东西。所以,$ 表示文件名的结尾,我们将它改为 .txt。

$ls

agenda notes weekly

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

$ls

agenda.txt notes.txt weekly.txt

你也可以更改文件名的其他部分。牢记 s/旧内容/新内容/ 规则。

$ls

draft-minutes-2018-03draft-minutes-2018-04draft-minutes-2018-05

$rename's/draft/approved/' *minutes*

$ls

approved-minutes-2018-03approved-minutes-2018-04approved-minutes-2018-05

在上面的例子中注意到,当我们在 s/old/new/ 中使用 s 时,我们用另一个名称替换名称的一部分。当我们使用 y 时,我们就是直译(将字符从一个范围替换为另一个范围)。

总结

现在有很多复制和重命名文件的方法。我希望其中的一些会让你在使用命令行时更愉快。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10969

    浏览量

    206654

原文标题:在 Linux 上复制和重命名文件

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    新手求助,如何按规定对文件进行重命名

    比如,一个原始文件夹下有好几个子文件夹,每个子文件夹下又有很多图片,现在有一个EXCEL表格,每列代表一个子文件夹中图片的新名字,要求按EXCEL表格的
    发表于 10-28 08:53

    linux文件复制和移动

    linux文件复制、移动与删除命令为:cpmv,rm
    发表于 07-19 07:34

    CyWDR文件也需要重命名吗?

    我想克隆一个项目,作为一个非常类似的项目的开始(稍后为相同代码的新版本)使用。是“将工作区/项目归档”到新文件夹并解压缩它的推荐方法。然后打开被复制和右击的项目并“重命名”主项目?关于“CyWDR
    发表于 08-15 14:02

    Linux文件复制、删除和移动命令

    Linux文件复制、删除和移动命令 Linux文件复制
    发表于 01-18 12:45 1202次阅读

    基于Linuxmv 指令移动文件和目录命令

    当你想要将文件从一个位置移动到另一个地方并且不想复制它,那么mv 命令是完成这个任务的首选。
    的头像 发表于 12-31 00:57 1.3w次阅读
    基于<b class='flag-5'>Linux</b>的<b class='flag-5'>mv</b> 指令移动<b class='flag-5'>文件</b>和目录<b class='flag-5'>命令</b>

    LABVIEW中文件重命名的几种方法——陈树学《labview宝典》

    夹,这意味着使用移动函数就可以实现文件重命名,只要源文件名和目的文件名位于同一文件夹中,实际上就实现了
    发表于 01-03 16:35 4222次阅读
    LABVIEW中<b class='flag-5'>文件</b><b class='flag-5'>重命名</b>的几种方法——陈树学《labview宝典》

    Linux操作系统:三种最基本的文件重命名方法

    在我们的工作生活中,不管是程序员还是非程序员,我们都会遇到过一个需求,那就是对一堆的文件进行重命名。在Windows下有很多优秀的软件可以帮助我们完成这个需求,而在Linux环境下,我们可以
    的头像 发表于 09-11 14:48 7666次阅读
    <b class='flag-5'>Linux</b>操作系统:三种最基本的<b class='flag-5'>文件</b><b class='flag-5'>重命名</b>方法

    如何使用python给所有文件重命名

    本文档的主要内容详细介绍的是如何使用python给所有文件重命名资料免费下载。
    发表于 09-22 17:09 2次下载
    如何使用python给所有<b class='flag-5'>文件</b>夹<b class='flag-5'>重命名</b>

    Linux常用命令/查找/搜索命令/压缩/解压命令网络命令

    3.mkdir4.rmdir5.ls使用示例:6.cp复制目录时,常用如下命令:$ cp -rfd dir_a dir_br:recursive,递归地,即
    发表于 12-16 16:53 12次下载
    <b class='flag-5'>Linux</b>常用<b class='flag-5'>命令</b>/查找/搜索<b class='flag-5'>命令</b>/压缩/解压<b class='flag-5'>命令</b>网络<b class='flag-5'>命令</b>

    如何使用cp和rsync命令复制文件和目录

    复制文件和目录是在使用命令行时最常见的任务之一。在Linux,有两个命令用于复制
    的头像 发表于 12-07 17:39 6177次阅读

    Linux rename命令重命名多个文件与目录

    使用`mv`命令重命名多个文件和目录可能是一个乏味的过程,因为它涉及使用管道,循环等编写复杂的命令
    的头像 发表于 12-09 17:41 2647次阅读

    如何使用mv和rename命令重命名文件

    重命名文件和目录是您经常需要在Linux系统上执行的最基本任务之一。重命名单个文件简单,但一次
    的头像 发表于 01-17 17:43 6988次阅读

    讨论Linux mv命令的一些实际示例

    mv 命令的最基本用途是重命名文件。那么让我们看看如何重命名当前目录中的文件
    的头像 发表于 02-14 16:28 416次阅读

    恒讯科技分析:如何使用cp命令Linux复制目录?

    复制目录是Linux中的一项基本任务,它允许我们复制目录、创建备份或在不同位置之间传输数据。在Linux复制
    的头像 发表于 06-26 17:14 453次阅读

    linux系统基本操作命令

    Linux系统基本操作命令有很多,以下是一些常用的命令: ls :列出目录内容。 cd :改变当前目录。 mkdir :创建目录。 touch :创建空白文件
    的头像 发表于 11-08 11:17 1125次阅读