日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

linux sed i 大文件,sed -i   修改链接文件注意事项   破坏了原文件

發(fā)布時(shí)間:2023/12/20 linux 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux sed i 大文件,sed -i   修改链接文件注意事项   破坏了原文件 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

因?yàn)閟ed -i /etc/sysconfig/selinux(selinux文件是/etc/selinux/config的軟鏈接)配置文件重啟SELINUX沒(méi)有關(guān)閉,才發(fā)現(xiàn)原來(lái)sed -i是不能直接修改軟鏈接文件的,如下我修改之后的后果:

[root@node1 ~]# ll /etc/sysconfig/selinux

lrwxrwxrwx. 1 root root 19 2月 20 20:34 /etc/sysconfig/selinux -> /etc/selinux/config

[root@node1 ~]# sed -i “s/SELINUX=enforcing/SELINUX=disabled/g” /etc/sysconfig/selinux

[root@node1 ~]# ll /etc/sysconfig/selinux

-rw-r–r– 1 root root 457 2月 20 22:50 /etc/sysconfig/selinux

[root@node1 ~]#

我們發(fā)現(xiàn)鏈接文件不再是鏈接文件了,后來(lái)查看sed?man選項(xiàng)時(shí)發(fā)現(xiàn)如下選項(xiàng)說(shuō)明

–follow-symlinks

follow symlinks when processing in place; hard links will still be broken.

-i[SUFFIX], –in-place[=SUFFIX]

edit? files? in? place (makes backup if extension supplied).??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.

以上說(shuō)明就不作過(guò)多解釋了,說(shuō)的很明顯,看下面實(shí)例

[root@node1 ~]# echo “test” >>test

[root@node1 ~]# ln -s ~/test ~/test_soft

[root@node1 ~]# ln ~/test ~/test_hard

[root@node1 ~]# ll -i test*

271653 -rw-r–r– 2 root root 5 2月 20 23:04 test

271653 -rw-r–r– 2 root root 5 2月 20 23:04 test_hard

271655 lrwxrwxrwx 1 root root 10 2月 20 23:04 test_soft -> /root/test

[root@node1 ~]# sed -i “s/test/hard/g” test_hard

[root@node1 ~]# sed -i “s/test/soft/g” test_soft

[root@node1 ~]# ll -i test*

271653 -rw-r–r– 1 root root 5 2月 20 23:04 test

271656 -rw-r–r– 1 root root 5 2月 20 23:05 test_hard

271657 -rw-r–r– 1 root root 5 2月 20 23:06 test_soft

[root@node1 ~]#

很明顯如man中所說(shuō)-i選項(xiàng)對(duì)軟鏈接和硬鏈接都會(huì)使受到破壞

[root@node1 ~]# rm -rf test*

[root@node1 ~]# echo “test” >>test

[root@node1 ~]# ln -s ~/test ~/test_soft

[root@node1 ~]# ln ~/test ~/test_hard

[root@node1 ~]# ll -i test*

271653 -rw-r–r– 2 root root 5 2月 20 23:08 test

271653 -rw-r–r– 2 root root 5 2月 20 23:08 test_hard

271655 lrwxrwxrwx 1 root root 10 2月 20 23:08 test_soft -> /root/test

[root@node1 ~]# sed -i -c “s/test/soft/g” test_soft

[root@node1 ~]# sed -i -c “s/test/soft/g” test_hard

[root@node1 ~]# ll -i test*

271653 -rw-r–r– 2 root root 5 2月 20 23:11 test

271653 -rw-r–r– 2 root root 5 2月 20 23:11 test_hard

271655 lrwxrwxrwx 1 root root 10 2月 20 23:08 test_soft -> /root/test

–follow-symlinks選項(xiàng)只對(duì)軟鏈接有效,硬鏈接還是會(huì)被破壞,建議使用-c選項(xiàng),這里就不舉例了

后來(lái)朋友在RHEL5上運(yùn)行相同的操作居然沒(méi)有出現(xiàn)類似的現(xiàn)象,運(yùn)行結(jié)果如下:

$ echo “test” >> test

$ ln -s ~/test ~/test1

$ ll ~/test1

lrwxrwxrwx 1 sxkj sxkj 15 02-21 13:26 /home/sxkj/test1 -> /home/sxkj/test

$ sed -i “s/test/test1/g” ~/test1

$ ll ~/test1

lrwxrwxrwx 1 sxkj sxkj 15 02-21 13:26 /home/sxkj/test1 -> /home/sxkj/test

經(jīng)查是sed的版本不同造成的影響,RHEL5系列的還是使用老版本的sed,沒(méi)有–follow-symlinks類似的選項(xiàng),筆者之前實(shí)驗(yàn)的版本是RHEL6.3,所以出現(xiàn)之前的一系列問(wèn)題了

總結(jié)

以上是生活随笔為你收集整理的linux sed i 大文件,sed -i   修改链接文件注意事项   破坏了原文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。