Linux / Mac 下 基本的 bash shell 命令详解(touch 、cp、mv、rm)

前言

这一篇主要说了touch,cp,mv,rm这几个很基本常用的命令。博客会同时发布在简书和CSDN,希望大家支持。

处理文件

bash shell 提供了很多在Linux文件系统上操作文件的命令。

创建文件 touch

可以使用touch命令来轻松创建空文件:
touch test
touch命令创建了指定的新文件,并将当前用户名作为文件的属主。
创建的文件大小是零,touch命令只会创建一个空文件。
如果再次使用:touch test命令,当前已经存在test文件,该命令行会使已有文件的访问时间和修改时间进行改变,而不改变文件的内容。

  • touch -a :只修改访问时间;
  • touch -m :只改变修改时间;

默认情况下,touch使用当前时间,可以使用:

  • touch -t 参数加上特定的时间戳来制定时间
    例如:

    touch -t 201612251200 test
    

复制文件 cp

在文件系统中将文件和目录从一个位置复制到另一个位置就需要使用cp命令。
最基本用法里,cp需要两个参数,源对象和目标对象:

cp source destination

当source的destination参数都是文件名时,cp命令将源代码复制到一个新文件,并且以destination命名。新文件就像全新的文件一样,有新的创建时间和修改时间。如果目标文件已经存在了,那么cp命令将会提示你是否要覆盖已有文件。

同大多数命令一样,cp命令也有一些可以提供帮助的命令行参数(当前其中部分命令行在Mac下面并没有效果):

参数 描述
-a 归档文件,并保留它们现在的属性(linux文件归档的意思是为文件或目录备份,建立归档文件)
-b 创建已存在目录文件的备份,而非覆盖它
-d 保留
-f 强制覆盖已存在的目标文件,不提示
-i 在覆盖目标文件之前提示
-l 创建文件链接而非复制文件
-p 如果可能保留文件属性
-r 递归的复制文件
-R 递归的复制目录
-s 创建一个符号链接而非复制文件
-S 覆盖默认的备份文件的后缀(默认是~)
-u 仅在源文件比目标文件新的情况下复制(相当于更新)
-v 详细模式,解释到底发生了什么
-x 仅限于当前文件系统的复制(这句话的背景是:Linux可同时挂在多个不同的文件系统类型的存储设备)

链接文件 cp -l cp -s

链接文件下面的两个参数只针对Linux有用,Mac上进过测试没有这几个命令参数。
你可能已经注意到,cp命令的许多参数都是针对链接文件的。这是Linux文件系统的一个优点。
如需要在系统上维护同一文件的的两份或者多份副本,除了保存多份单独的物理文件副本之外。还可以采用保存一份物理文件副本和多个虚拟副本的方法。这种虚拟的副本就被称为链接。链接是目录中指向文件真实位置的占位符。在Linux中有两种不同类型的文件链接:

  • 符号链接,即软链接;
  • 硬链接
    硬链接会创建一个独立文件,其中包含了源文件的信息以及位置。引用硬链接文件文件等同于链接了源文件:
cp -l test1 test4

-l参数创建了一个指向test1的硬链接test4。在文件列表可看出,文件test1和test4的索引节点号是相同的,这表明,实际上它们是同一个文件。还要注意,链接计数表示当前这两个文件都有两个链接了。
只能在同种存储媒体上的文件之间创建硬链接,不能在不同挂载点下的文件间创建硬链接。在后一种情况下,可以使用软链接。

-s参数可以创建一个符号链接,即软链接:

cp -s test1 test5

首先,新建的test5文件有了一个不同于test文件的索引节点号,这说明Linux系统把它当做一个单独的文件。
其次,文件变小了。链接文件只需要存储源文件的信息,并不需要存储源文件中的数据。

在复制文件链接时需要注意,如果用cp命令来复制一个链接到到另一个源文件的文件,那么你复制的其实是源文件的另一个副本,而不是链接文件的。这点很容易混淆。可以创建一个指向源文件的新链接,而不用复制链接文件。可以创建指向同一文件的多个链接,但不要创建指向其他符号链接文件的多个符号链接。这样会生成一个链接文件链,不但容易混淆,还容易断掉,造成各种各样的问题。

重命名文件 mv

在Linux中,重命名文件称为移动(moving)。mv命令就是用来将文件和目录移动到另一个位置的:

mv test1 test2
mv test1 ../Desktop/

移动文件会改变文件名,但保持同样的索引节点号和时间戳。移动一个有软链接指向文件会带来麻烦,会造成一个软链接文件指向一个无效文件。

删除文件 rm

在Linux中,删除(deleting)叫做移除(removing)。base shell 中删除文件的命令是rm。

rm test1

注意命令会提示是否真的要删除文件(Mac下不会提示)。
base shell中没有回收站或者垃圾桶,所以一旦删除就无法找回了。

关于rm命令的命令行参数,可以参考cp的命令行参数,大多数是一致的,以下列举几个常用的:

-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
--preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程。

当输出一个带链接的文件时,源文件被删除后,硬链接文件内容依旧存在,而软链接文件时,bash会表示它已经不复存在了。
硬链接文件采用和源文件相同的索引节点号。硬链接会一直维护这个索引节点号来保留数据,知道删除了最后一个链接它的文件。
所有的软链接文件都知道它所指向的文件不存在了,所以指向的也就是一个无效文件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容