![如果我没有文件的写权限,如何让 nano 告诉我?](https://linux22.com/image/494942/%E5%A6%82%E6%9E%9C%E6%88%91%E6%B2%A1%E6%9C%89%E6%96%87%E4%BB%B6%E7%9A%84%E5%86%99%E6%9D%83%E9%99%90%EF%BC%8C%E5%A6%82%E4%BD%95%E8%AE%A9%20nano%20%E5%91%8A%E8%AF%89%E6%88%91%EF%BC%9F.png)
我以前使用过 shell 环境,其中文本编辑器“nano”会在我打开文件进行编辑时警告我是否没有文件的写入权限。这为我节省了很多时间,因为我以前忘记输入“sudo”,然后花了时间编辑文件,最后不得不重新编辑。
我想在其他几台服务器上复制这种行为,但在 nano 手册页中没有看到这个选项。
答案1
为什么不把nano
命令替换成一个脚本,检查您是否有写入权限,sudo nano
如果没有,则自动调用?这样可以节省您更多的时间!
您可能希望在调用之前让脚本输出您没有写权限,sudo nano
这样您就不会想知道为什么系统要求您输入密码。
答案2
我修改了正确答案中链接的脚本,以检查用户是否对不存在的文件具有写权限(检查正确的目录权限),以及一些其他更新。
这是对以下内容的修改: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