sed -i修改連結檔案注意問題
因為sed -i /etc/sysconfig/selinux(selinux檔案是/etc/selinux/config的軟連結)配置檔案重啟SELINUX沒有關閉,才發現原來sed -i是不能直接修改軟連結檔案的,如下我修改之後的後果:
[[email protected] ~]# ll /etc/sysconfig/selinux
lrwxrwxrwx. 1 root root 19 2月 20 20:34 /etc/sysconfig/selinux -> /etc/selinux/config
[[email protected] ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux
[ [email protected] ~]# ll /etc/sysconfig/selinux
-rw-r--r-- 1 root root 457 2月 20 22:50 /etc/sysconfig/selinux
[[email protected] ~]#
我們發現連結檔案不再是連結檔案了,後來檢視sed man選項時發現如下選項說明
--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
-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.
以上說明就不作過多解釋了,說的很明顯,看下面例項
[[email protected] ~]# echo "test" >>test
[[email protected] ~]# ln -s ~/test ~/test_soft
[[email protected] ~]# ln ~/test ~/test_hard
[[email protected] ~]# 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
[[email protected] ~]# sed -i "s/test/hard/g" test_hard
[[email protected] ~]# sed -i "s/test/soft/g" test_soft
[[email protected] ~]# 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
[[email protected] ~]#
很明顯如man中所說-i選項對軟連結和硬連結都會使受到破壞[[email protected] ~]# rm -rf test*
[[email protected] ~]# echo "test" >>test
[[email protected] ~]# ln -s ~/test ~/test_soft
[[email protected] ~]# ln ~/test ~/test_hard
[[email protected] ~]# 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
[[email protected] ~]# sed -i -c "s/test/soft/g" test_soft
[[email protected] ~]# sed -i -c "s/test/soft/g" test_hard
[[email protected] ~]# 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選項只對軟連結有效,硬連結還是會被破壞,建議使用-c選項,這裡就不舉例了後來朋友在RHEL5上執行相同的操作居然沒有出現類似的現象,執行結果如下:
$ 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
經查是sed的版本不同造成的影響,RHEL5系列的還是使用老版本的sed,沒有--follow-symlinks類似的選項,筆者之前實驗的版本是RHEL6.3,所以出現之前的一系列問題了相關推薦
sed -i修改連結檔案注意問題
因為sed -i /etc/sysconfig/selinux(selinux檔案是/etc/selinux/config的軟連結)配置檔案重啟SELINUX沒有關閉,才發現原來sed -i是不能直接修改軟連結檔案的,如下我修改之後的後果: [[email pr
關於sed -i 修改selinux的問題
原文連結:http://blog.51cto.com/nightmoon/1383651 問題描述: 近日,在測試優化指令碼的時候遇到一個問題。指令碼命令如下 # close selinux setenforce 0 && sed -i 's/SELINUX=en
shell檔案編輯工具,sed -i與ed的區別
著無聊,繼續答題問題:GNU sed 提供了-i選項,為什麼有人說sed -i 並不象 ed 一樣真正的編輯檔案?(提示:觀察檔案改變前後的inode)注意審題的話,這題是二個檔案編輯器的比較,也有可能是提示的誤導,這題大都知道答-i 是用臨時檔案的機制,但這道題如果不通過說
使用sed修改配置檔案中配置項的值
大致思路如下: sed修改某一個檔案的配置項的值 1.找到行號 ,比如得到的行號是9 sed -n '/aaa/=' config.ini 2.刪除這一行,再新增你想加的內容,
使用 sed 修改配置檔案
最近寫一些Debian包安裝指令碼。由於希望安裝時能提示使用者輸入一些初始配置引數,用sed倒來倒去,終於弄出來。 sed功能強大,但引數繁多,一天不用就忘。還是找個地方記下來,一來給大家分享,二來這裡比記在本子上強。 一個典型的例子是,在配置檔案中修改一個子網IP。在這
shell指令碼採用sed批量修改檔案
轉載自:http://www.furion.info/81.html 週末看《sed 與 awk 第二版》的時候,看到書上有個很好的shell指令碼-runsed,用來批量修改檔案,當然是通過呼叫sed來修改。 原指令碼程式碼如下: # !/bin/bash f
sed 批量修改Makefile文件
sed 批量修改makefile文件Makefile文件太多 [[email protected]/* */ DarwinStreamingSrvr6.0.3-Source]# find -name Makefile.POSIX ./APIModules/QTSSDemoAuthorizatio
[轉][JS]修改連結中的引數
轉自:https://blog.csdn.net/weixin_40845192/article/details/81561644 /** * url地址修改 * @param url 待修改url * @param arg 修改的引數名 * @param arg_val 修改的具體值 *
mybatis寫mapper檔案注意事項
xml中某些特殊符號作為內容資訊時需要做轉義,否則會對檔案的合法性和使用造成影響 Html程式碼 < < >&n
修改host檔案
Hosts是一個沒有副檔名的系統檔案,其作用就是將一些常用的網址域名與其對應的IP地址建立一個關聯“資料庫”,當用戶在瀏覽器中輸入一個需要登入的網址時,系統會首先自動從Hosts檔案中尋找對應的IP地址,一旦找到,系統會立即開啟對應網頁,如果沒有找到,則系統再會將網址提交DNS域名解析伺服器進行
批量修改文字檔案的編碼格式
1.使用EditPlus開啟要修改編碼格式的檔案所屬目錄 2.按shift,選中左下角列表中需要轉換編碼格式的文字,右擊選擇“開啟”,開啟的效果如下: 3.依次選擇選單欄中的“文件”->“文字編碼”->“批量更改文字編碼”,按shift選擇要更改編碼格式的文字,然後單擊“
java下載檔案注意點
前臺: 不建議使用ajax,可以使用window.location.href 後臺: 三個引數--> response path filename--filename如果要防止亂碼,可以用String str = URLEncoder.encode("中國","utf-8")
批量修改xml檔案節點資訊
今天來說說xml那些事兒.如何批量修改指定資料夾下的xml檔案的指定屬性.分三步走,首先,我們先看看如何讀寫單個 的xml檔案;第二步,來看看如何遍歷指定資料夾下的所有檔案,獲取到所有檔案的檔名;第三步,我們來看看一二之間 該如何銜接.好,lets d
linux ---遠端登陸設定,密碼修改,檔案傳輸,打包壓縮
<1>.ssh的安全設定(配置) vim /etc/ssh/sshd_config ---> sshd配置檔案的設定 PasswordAuthentication yes ---> 是否允許使用者通過密碼做sshd認證 PermitRootLogi
PDF編輯工具如何修改PDF檔案內容
工作中,使用PDF檔案居多,PDF檔案的修改需要使用到PDF編輯器,那麼,PDF編輯工具如何修改PDF檔案內容呢,不會的以及想要了解的小夥伴可以跟著小編一起看看哦。 開啟編輯器,比如迅捷PDF編輯器,在編輯器中開啟需要修改的PDF檔案。 檔案開啟後,在編輯器最上面的選單
ln 軟體連結目錄時,當連結檔案已經存在時,結果非預期
建立軟體連結的語法如下: link -s target linkName 例項: ln -s ssh_connect_home link1 但是當我們想把此連結指向第二個檔案時,結果卻不如意料那般: &nbs
python修改配置檔案某個欄位
思路:要修改的檔案filepath 將修改後的檔案寫入f2,刪除filepath,將f2名字改為filepath,從而達到修改 imort os tag=“name=” midifyInfo=“name=lilei” f1=filepath f2=application.applicatio
linux---修改.bashrc檔案導致終端命令不能使用
其實解決問題的方法很簡單:把你在bashrc檔案中寫錯的東西註釋掉或者改寫正確即可。 可是此時圖形介面登陸不了,vim用不了。怎麼改? 解決方案: 步驟1:輸入命令export PATH=/bin:/usr/local/sbin:
python修改txt檔案中的某一項
在做task中,需要將TXT文字中的某一項註釋修改,但是python對txt文字只有寫入和讀取兩種操作。 我採用的方法是: 1.讀取txt檔案,將每一行資料,加入新建立的list中。 2.在list中修改資料 3.再新建一個txt檔案,按行存入資料。記得新增 ‘/n’ 分行 例項
idea使用jetty啟動專案無法修改JS檔案
使用mvn jetty:run web開發時,經常會遇到無法修改js檔案問題,一修改就會報錯: 詳細介紹參考:參考文件 jetty 預設開啟了 useFileMappedBuffer,在 jetty 執行期間,頁面所使用的靜態檔案(如 css 檔案等)不允許修改。如果你嘗試去修改它 們,儲存