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 时,我们就是直译(将字符从一个范围替换为另一个范围)。
总结
现在有很多复制和重命名文件的方法。我希望其中的一些会让你在使用命令行时更愉快。
没有清晰的企业战略设想,数字化建设就犹如空中楼阁
英特尔发布Coffee Lake处理器系列,最多支持128GB ECC内存
AD9833型高精度可编程波形发生器设计方案
云英谷获国家半导体大基金的新一轮战略投资,接近一亿元人民币
居家装饰有讲究 三盏灯位不可缺
在Linux上使用简单的cp和mv命令来复制和重命名文件
关于联瑞PoE系列网卡产品的介绍
神经网络计算效率如何来提高
LG黑点,手机业务连亏10个季度,LG未来难料
iphone8什么时候上市最新消息:iphone8如期而至,9月量产!黑科技满满的iphone8重磅来袭
汽车电子电磁兼容标准概述分类 - 汽车电子EMC测试照片
晶圆代工还要再涨价?
一种简易的GPS信号模拟技术
在高端市场,蔚来会以什么形式实现自我造血和盈利?
PLC网关BL102助力PLC控制技术在钢铁行业中的应用
暑假学生党购机实力之选:高通骁龙888旗舰5G机型,值得你入手
浪涌保护器和过电压保护器的区别
数字示波器时基昀检定方法有哪几种?
基本触发器的逻辑结构和工作原理
“2020最佳科技产品”公布:海信ULED电视、Apple、Netflix上榜