Permissions

如果我沒有文件的寫權限,如何讓 nano 告訴我?

  • September 30, 2009

我過去使用過 shell 環境,當我打開文件進行編輯時,如果我沒有文件的寫權限,文本編輯器“nano”會警告我。當我忘記事先輸入“sudo”然後花時間編輯文件而不得不重新做一遍時,這為我節省了很多時間。

我想在其他幾台伺服器上複製這種行為,但在 nano 聯機幫助頁中看不到任何可以選擇的地方。

為什麼不將nano命令替換為檢查您是否具有寫入權限並在沒有寫入權限時自動呼叫的腳本sudo nano?為您節省更多時間!

您可能希望在呼叫之前獲得您沒有寫入權限的腳本輸出,sudo nano這樣您就不會想知道為什麼會要求您輸入密碼。

我修改了正確答案中連結到的腳本,以檢查使用者是否對不存在的文件具有寫權限(檢查正確的目錄權限)以及其他一些更新。

這是對以下內容的修改:http ://tuts4tech.net/2009/07/08/nano-write-check-before-editing/

#!/bin/bash
FILE="$1"

[ $# -eq 0 ] && exit 1

if [ -w "$FILE" ] || ( [ ! -e "$FILE" ] && [ -w `readlink -f $FILE | grep -o '/.*/'` ] ) ; then
  nano $FILE
else
  tput bel
  echo "WARNING: You do not have write acess to $FILE"
  echo -n "Continue? y/[n]: "
  read REPLY
  if [ $REPLY ] && [ $REPLY == "y" ] ; then
       nano $FILE
  fi
fi

引用自:https://serverfault.com/questions/70101