成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Sed 原地替換文件時遇到的趣事

開發(fā) 前端
那我的需求是對軟鏈接文件 link_test.txt 進行內(nèi)容修改,軟鏈接文件屬性不變,且源文件的內(nèi)容也跟著改變,有沒有什么方法呢?

哈嘍大家好,我是咸魚

在文章《三劍客之 sed》中咸魚向大家介紹了文本三劍客中的 sed

sed 全名叫 stream editor,流編輯器,用程序的方式來編輯文本

那么今天咸魚打算講一下我在用 sed 原地替換文件時遇到的趣事

sed 讓文件屬性變了?

有這么一個普通文件 test.txt ,內(nèi)容如下:

圖片圖片

link_test.txt 是一個軟鏈接(Symbolic Link,也可以叫符號鏈接)文件,指向 test.txt 文件

圖片圖片

軟鏈接文件類似于 Windows 的快捷方式,它實際上是一個特殊的文件。關于軟鏈接相關的內(nèi)容這里不過多介紹

如果我們對軟鏈接文件內(nèi)容進行修改,源文件是會跟著改變的

圖片圖片

當我使用 sed 對軟鏈接文件 link_test.txt 進行內(nèi)容修改時,命令如下

圖片圖片

有趣的現(xiàn)象發(fā)生了:使用 sed 對軟鏈接文件 link_test.txt 進行內(nèi)容修改之后,源文件 test.txt 內(nèi)容沒有變化,軟鏈接文件link_test.txt 的內(nèi)容發(fā)生變化且變成了普通文件

圖片圖片

怎么樣,是不是很神奇?sed 不但把文件內(nèi)容改了,還把文件屬性也給改了

我們用 strace 工具來查看一下在執(zhí)行 sed 命令時操作系統(tǒng)做了哪些操作

strace 一個系統(tǒng)調(diào)用跟蹤工具,它會跟蹤并記錄命令運行期間的系統(tǒng)調(diào)用和信號

圖片圖片

具體內(nèi)容有點多,我們著重看下關鍵內(nèi)容

圖片圖片

由上圖可以知道,如果我們使用 sed 對一個文件進行原地替換,需要有一個臨時文件,sed 先把修改內(nèi)容寫入到這個文件,最后將文件 rename 到原來的地方

那我的需求是對軟鏈接文件 link_test.txt 進行內(nèi)容修改,軟鏈接文件屬性不變,且源文件的內(nèi)容也跟著改變,有沒有什么方法呢?

也就是說我們希望命令在執(zhí)行的時候能夠解析出來軟鏈接文件后面指向的源文件,直接對源文件進行讀--處理--寫,最后 rename

sed 命令有一個選項 --follow-symlinks

圖片圖片

我們在執(zhí)行的時候加上這個選項:

圖片圖片

圖片圖片

總結一下:

  • sed 替換的底層邏輯是把更新后的內(nèi)容寫入一個臨時文件里面,然后再 rename 這個臨時文件
  • 這樣就會使得如果沒有添加 –follow-symlinks 選項的話,對軟鏈接文件進行 sed 操作就會使得軟鏈文件變成了一個常規(guī)文件(其實是那個臨時文件重命名導致的)
  • 如果要對軟鏈接文件指向的源文件進行操作,就需要添加 –follow-symlinks 選項
責任編輯:武曉燕 來源: 咸魚運維雜談
相關推薦

2019-09-23 15:40:42

sedLinux命令

2009-09-11 08:47:03

Linux系統(tǒng)批量替換文件Linux

2025-02-10 08:10:00

Linuxsed命令

2021-08-11 08:35:38

Word文件開發(fā)代碼

2021-01-11 05:13:50

數(shù)據(jù)存儲字節(jié)

2021-09-21 15:28:33

LinuxSed智能引號

2012-05-17 15:15:11

Linux

2009-07-07 13:12:44

Java Servle

2010-04-29 14:33:01

Unix系統(tǒng)

2010-04-27 14:55:53

Unix SFTP

2020-07-03 08:01:43

Redis緩存存儲

2016-12-20 12:42:28

MySQL腳本問題

2017-03-16 12:08:09

OpenstackCompute DriLibvirt

2023-01-28 08:34:59

2010-08-06 08:50:21

ASP.NET

2016-02-26 15:25:45

程序員Bug反應

2019-08-28 15:43:03

sed命令Linux

2011-05-18 17:01:13

Android

2020-05-08 09:37:32

網(wǎng)線網(wǎng)絡網(wǎng)速

2010-01-05 16:18:17

學習JavaScrip
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色橹橹欧美在线观看视频高清 | caoporn国产精品免费公开 | 黄a网 | 在线免费观看黄a | 国产亚洲精品美女久久久久久久久久 | 一区欧美 | 日本免费在线观看视频 | 岛国毛片 | 色综合色综合 | 亚洲欧美v| 超碰精品在线 | 奇米av| 日韩一二区在线 | 欧美精品日韩精品国产精品 | 国产精品综合色区在线观看 | 免费在线看a | 性高湖久久久久久久久 | 在线不卡av| 亚洲精品久久久一区二区三区 | 在线视频91| 欧美一区视频在线 | 亚洲国产精品suv | 成人网av| 久久国产精品精品国产色婷婷 | 国产精品一区二区三区在线播放 | 国产亚洲精品久久久久久牛牛 | 中文字幕一区二区三 | 宅女噜噜66国产精品观看免费 | www日韩高清 | 国产东北一级毛片 | 国产欧美精品一区 | 成人精品久久日伦片大全免费 | 成人午夜精品 | 中文字幕高清免费日韩视频在线 | 一区二区三区四区不卡视频 | 二区欧美 | 日韩在线资源 | 91xxx在线观看| 在线国产一区二区三区 | www.99热.com| 国产欧美日韩在线播放 |