Linux外壳凹坑避免指南-betway体育app_必威体育betwayAPP_betway体育


☞ Linux外壳凹坑防止攻略-betway体育app_必威体育betwayAPP_betway体育 程序员进阶架构师必备资源免费送 ☜

来自:xrzs的博客 

链接:

https://my.oschi广州地铁时间na.net/leejun2005/blog/793916

shellLinux外壳凹坑防止攻略-betway体育app_必威体育betwayAPP_betway体育 作为一门 linux 下运用广泛的体系言语,语法简略,上手简单,可是想要用好,少犯过错,也不是那么简单的一件事,可谓虽是居家游览之良药,但也是杀人灭口之利器~

今日就来聊聊 linux 下一个常见的问题:怎么防止误删目录。下文会具体的叙述不同的场景下误删目录,以及相应的解决方案。


1、变量为空导致误删文件

base_path=/usr/sbin

tmp_file=`cmd_invalid`

# rm -rf $base_path/$tmp_file


这种情况下假如 cmd 履行犯错或许回来为人头马空,结果将是灾难性的,那怎么防备呢?

(1)运用 shell 的变量扩展功用,假如变量法官为空赋给默认值或许抛出反常退出脚本:

echo ${base_path:?var is empty}/${tmp_file:?var is empty}

-bash: tmp_file: var is太阳女战士 e是谁呼叫舰队mpty

(2)人肉判别变量是否为空:

[[ ${tm香兰印尼餐厅p_file} == "" ]] && echo 1

1[[ -z ${tmp_file} ]] && echo 1      

1


(3)假如变量未定义还能够敞开 set 选项

# cat a.sh

set -u 

b=

echo $b

echo $a

echo 1

# bas冒菜h a.sh

a.sh: line 4: a: unbound variable

2、换得网途径含有空格导致误删文件

史上最经典的要数下面这个bumblebee项目了,这个项目原本不出名,不过,程序在其装置脚本install.sh里的一个bug让这个项目一会儿成了全世界最注目的项目。

那咱们该怎么防备这种问题呢?

(1)杰出的编程习气:变量加引号防止扩展

path="/usr/loLinux外壳凹坑防止攻略-betway体育app_必威体育betwayAPP_betway体育 cal /sbin"

# rm -rf $p金仁英微博ath

rm -rf "$path"

(2)对变量进行语义检查

比方检测是否含有空格等特别字符,不通用,不引荐这么做

3、目录或文件含有特Linux外壳凹坑防止攻略-betway体育app_必威体育betwayAPP_betway体育 殊字符导致误删文件

ll 

总用量 8

dr反犬tdogwxrwxr-x 2 work work 4096 11月 24 18:57 '~'

-rw-rw-r-- 1 work work &nbs康生p; 34 11月 24 19:49 a.sh

# rm -乳汁rf ~

那咱们该怎么防备这种问题呢?

(1)杰出的编程习气:变量加引号防止扩留守美人的丧命邂逅展

rm -rf "~"

(2)假如不确定,删去之前 echo 或 find 一下,看变量被扩展成啥了

echo rm -rf "~"

rm -rf ~

echo rm -rf ~ 

 r露出女友m -rf /home/work

4、cd 切换目录失利,导致文件被误删

cd o日本豆腐oxLinux外壳凹坑防止攻略-betway体育app_必威体育betwayAPP_betway体育 x_path_not_exsit 

rm -rf *.exe

祝贺这种情况下你的当时目录下匹配文件都会被误删,那咱们该怎么防备这种问题呢?

(1)运用逻辑短路操作

cd path && rm 吃什么养胃-rf *.exe

(2)检测 path 是否存在

[[ -d ~ ]] && echo 1

1

5、终极解决方案


不要运用 root 操作体系资源,这样至少不会删去体系文件。

6、在登录 shell 下运用友爱的提示符

友爱的命令提示符能时间提示操作者当时在哪个途径下,防止过错的途径下操作文件。


上文到此就完毕了,列举了一些常见的case和解决方案,期望能对我们有所启示。



活动:只需你坚持,我就送书,每人都有!

送什么书?请点击左下角阅览原文检查!


长按辨认以下二维码参加报到↓↓↓↓↓


将本号置顶/标星,

不忘报到哦!





本大众号悉数博文已收拾na成一个目录,请在大众号里回复「m」Linux外壳凹坑防止攻略-betway体育app_必威体育betwayAPP_betway体育 获取!


引荐阅览:

大众号一周年!

钻进 LinuLinux外壳凹坑防止攻略-betway体育app_必威体育betwayAPP_betway体育 x 内核看个终究 | 文末周年福利永年天气预报

朋友圈长文不折叠神器


5T技能资源大放送!包含但不限于:C/C红烧茄子的家常做法++,Linux,Python,Java,PHP,人工智能,单片机,树莓派,等等。在大众号内回复「1024」,即可免费获取!!


评论(0)