linux--sh -c
背景
在Linux使用 echo 並配合命令重定向是實現向檔案中寫入資訊的快捷方式。
比如要向 test.asc 檔案中隨便寫入點內容,可以:
$ echo “資訊” > test.asc
$ echo “資訊” >> test.asc
下面,如果將 test.asc 許可權設定為只有 root 使用者才有許可權進行寫操作:
$ sudo chown root.root test.asc
然後,我們使用 sudo 並配合 echo 命令再次向修改許可權之後的 test.asc 檔案中寫入資訊:
$ sudo echo “又一行資訊” >> test.asc
-bash: test.asc: Permission denied
這時,可以看到 bash 拒絕這麼做,說是許可權不夠。這是因為重定向符號 “>” 和 “>>” 也是 bash 的命令。我們使用 sudo 只是讓 echo 命令具有了 root 許可權,但是沒有讓 “>” 和 “>>” 命令也具有 root 許可權,所以 bash 會認為這兩個命令都沒有像 test.asc 檔案寫入資訊的許可權。
使用sh -c
利用 “sh -c” 命令解決這一問題,它可以讓 bash 將一個字串作為完整的命令來執行,這樣就可以將 sudo 的影響範圍擴充套件到整條命令。具體用法如下:
$ sudo sh -c ‘echo “又一行資訊” >> test.asc’
相關文章
- (轉貼) C++,C#,Java功能比較 (.NET) (C#) (C/C++)C++C#Java
- 聊聊我理解的ANSI C、ISO C、GNU C、POSIX C
- C 與 C++C++
- C/C++工具C++
- C/C++複習C++
- C/C++const用法C++
- 從C到C++C++
- C++呼叫C介面C++
- 【C/C++】 C++暫存器優化C++優化
- 【C/C++】C和C++11之enum列舉的使用細節C++
- 1007:計算(a+b)×c的值(C C++)C++
- 【C/C++】4.C++的記憶體管理C++記憶體
- Python呼叫C/C++方式PythonC++
- c/c++ 面試題C++面試題
- C/C++自學之路C++
- c/c++面試題C++面試題
- c/c++面試整理C++面試
- 【c&c++】glib介紹C++
- Linux C/C++呼叫mongDBLinuxC++
- C/C++中的constC++
- C和C++區別C++
- (原創) C語言初學者建議的書籍 (C/C++) (C)C語言C++
- 【C/C++】c++多程式與hiredis的淺使用C++Redis
- ORACLE 18C 19C 20C新特性Oracle
- 令C/C++初學者頭疼,5個常見C/C++錯誤C++
- C/C++ Const 小知識C++
- External Pricing in C4C and ERP
- c/c++ 標準庫 vectorC++
- c/c++ const關鍵字C++
- c與c++的區別C++
- 【01】C到C++(基礎)C++
- c/c++ 位元組對齊C++
- C/C++指標總結C++指標
- C和C++中的staticC++
- 1123:影像相似度(C C++)C++
- Frogs‘ Neighborhood(POJ 1659 C/C++)C++
- 1020:列印ASCII碼(C C++)ASCIIC++
- c與c++基本常識C++