亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2153 | 回復: 2
打印 上一主題 下一主題

[文件目錄] sed -i 是不是原子操作?看了man文檔 按照其敘述應(yīng)該是的 但是還有一些不明白的地方 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2014-11-15 18:58 |只看該作者 |倒序瀏覽
# man sed
-i[SUFFIX], --in-place[=SUFFIX]

              edit files in place (makes backup if extension sup-
              plied).  The default operation  mode  is  to  break
              symbolic  and hard links.  This can be changed with
              --follow-symlinks and --copy.

       -c, --copy

              use copy instead of rename when shuffling files  in
              -i  mode.   While  this  will  avoid breaking links
              (symbolic or hard), the resulting editing operation
              is  not  atomic.   This is rarely the desired mode;
              --follow-symlinks is usually enough, and it is both
              faster and more secure.

1. -i :The default operation  mode  is  to  break symbolic  and hard links.
  break symbolic  and hard links是什么意思?
  是不是這樣的:
  sed -i PATTERN file
    sed先創(chuàng)建一個新空白文件 按照PATTERN過濾file到這個新空白文件 等待全部處理完成后 直接修改文件系統(tǒng)的file文件名指向這個新的文件 而老的file數(shù)據(jù)區(qū)域后來被sed刪除掉(當沒有備份要求時)在這種情況下 這個操作就是原子的!

2. -c : use copy instead of rename when shuffling files  in
              -i  mode.   While  this  will  avoid breaking links
              (symbolic or hard), the resulting editing operation
              is  not  atomic.
  這個是不是說 如果 sed -c PATTERN file 在其正在處理file的時候 若有人去讀這個文件 他讀到的就是正在處理中的文件?

  請各位朋友指教!

論壇徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年紀念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役紀念章
日期:2022-04-24 14:33:24
2 [報告]
發(fā)表于 2014-11-15 20:49 |只看該作者
sed先創(chuàng)建一個新空白文件 按照PATTERN過濾file到這個新空白文件 等待全部處理完成后 直接修改文件系統(tǒng)的file文件名指向這個新的文件 而老的file數(shù)據(jù)區(qū)域后來被sed刪除掉(當沒有備份要求時)在這種情況下 這個操作就是原子的!

分別查看修改之前和修改之后的inode就知道啦

論壇徽章:
0
3 [報告]
發(fā)表于 2014-11-16 22:55 |只看該作者
回復 2# Shell_HAT


    謝謝朋友了!
   
    我試了一下,下面是結(jié)果:

     sed -i PATTERN file  (文件名指向了新的inode 是原子操作。

     sed -ci PATTERN file  (inode不變 說明不是原子操作)

     我還試了一下
       vim file
     用這種方式編輯file,file指向了新的inode,這也是原子操作
     
     但是如果用簡單的 echo 'content' >> file 追加的方式 就不是原子操作了
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP