在 Linux 上复制和重命名文件的方法不止 cp 和 mv。尝试下面建议的一些命令和其他方法。它们可以让您大吃一惊,并为您节省大量时间。
Linux 用户几十年来一直使用简单的 cp 和 mv 命令来复制和重命名文件。 cp 和 mv 命令是我们大多数人每天学习和使用的第一个命令。但是有一些技术、方便的变体和一些其他命令可以重命名文件,并提供某些选项。
- 每个人都需要知道的基本 Linux 命令
如何在 Linux 中复制文件
首先,想想为什么要复制文件。您可能需要在另一个位置使用相同的文件,或者您可能希望在编辑文件之前创建一个副本,以便在需要恢复到原始文件时使用。显而易见的方法是使用类似“cp myfile myfile-orig”的命令。
但是,如果要复制大量文件,这种方法就不适合了。更好的选择是:
- 在开始编辑之前,使用 tar 命令为要备份的所有文件创建一个存档。
- 使用 for 循环使备份更容易。
Tar 选项非常简单。对于当前目录中的所有文件,您将使用以下命令:
$ tar cf myfiles.tar *
对于您可以使用模板定义的一组文件,您将使用以下命令:
$ tar cf myfiles.tar *.txt
在第一种情况下,您将创建一个文件 myfiles.tar ,其中包含目录中的所有文件。在第二种情况下,文件 myfiles.tar 将包含所有扩展名为 .txt 的文件。
使用以下循环将有助于创建带有修改名称的备份:
$ 为 tập tin trong *
>由
> cp $file $file-orig
>完成
当你备份一个文件并且文件名很长时,你可以依靠tab命令来使用文件名补全功能输入文件名并使用后按tab键。此语法将“-orig”添加到副本。
$ cp file-with-a-very-long-name {,-orig}
之后,你有2个文件名如下:
xxxxxxxxxxxx 和 xxxxxxxxxxxx-orig.
如何在 Linux 中重命名文件
重命名文件的传统方法是使用 mv 命令。此命令会将文件移动到另一个文件夹,更改其名称并将其保留在特定位置。
$ mv myfile/tmp
$ mv myfile notmyfile
$ mv myfile/tmp/notmyfile
但是现在我们有许多其他的重命名命令来进行一些重要的文件名更改。使用 rename 命令的秘诀在于习惯它的语法,但如果你对 perl 编程语言有所了解,你可能会觉得它一点也不复杂。
这是一个非常有用的例子。假设您要重命名文件夹中的文件以将所有大写字母替换为小写。通常,您不会在 Unix 或 Linux 系统上找到很多大写文件,但有时会发生这种情况。这是重命名它们的简单方法,无需对每个文件使用 mv 命令。参数/AZ/az/表示重命名命令,将AZ范围内的任意字母更改为az中对应的字母。
$ ls
Agenda Group.JPG MyFile
$ rename 'y/AZ/az/' *
$ ls
agenda group.jpg myfile
也可以使用rename命令删除文件扩展名。您可能会对带有 .txt 标签 的文本文件感到不舒服。只需使用以下命令删除它们:
$ ls
议程.txt notes.txt 每周.txt
$ rename 's/.txt//' * *
$ ls
每周议程笔记
现在假设您改变主意并想要重置文件扩展名。没问题。只需更改命令即可。诀窍是理解第一个斜杠之前的“s”表示“substit”。前两个斜杠之间是您要更改的内容。第二个和第三个斜杠之间就是你要改成的。所以,$代表文件名的结尾,我们将它重命名为'.txt'。
$ls
每周议程笔记
$ rename 's/$/.txt/' * *
$ ls
议程.txt notes.txt 每周.txt
您还可以更改文件名的其他部分。离开规则s/old/new/。
$ ls
draft-minutes-2018-03 draft-minutes-2018-04 draft-minutes-2018-05
$ rename 's/draft/approved/' * minutes *
$ ls
批准-分钟-2018-03 批准-分钟-2018-04 批准-分钟-2018-05
注意:在上面的例子中,当我们使用 s 就像在 " s/old/new/”,我们将把这个名字的一部分替换为另一个名字。使用 y 时,您正在翻译(将字符从一个范围替换到另一个范围)。
Linux 中有很多复制和重命名文件的选项。找到最适合您的计划。祝你好运!
查看更多:
- 使用命令行界面在 Linux 中搜索文件和目录
- 了解 Linux 操作系统上的文件系统和文件夹
- 操作每个人都必须知道的最基本文件和文件夹的 7 个命令
评论