仓酷云
标题:
Linux编程:接纳站功效在 Linux 中的完成仓酷云
[打印本页]
作者:
若相依
时间:
2015-1-18 11:18
标题:
Linux编程:接纳站功能在 Linux 中的完成仓酷云
系统管理相关命令:df、top、free、quota、at、lp、adduser、groupaddkill、crontab、tar、unzip、gunzip、last
本文模仿Windows接纳站的功效,使用Bash剧本在Linux上做了完成,创立delete剧本取代rm命令对文件或目次举行删除操做。该剧本完成了以下功效:对年夜于2G的文件或目次间接删除,不然放进$HOME/trash目次下;恢复trash目次中的被删除文件到原目次下;文件寄存在trash目次中凌驾七天被主动删除。
概述
删除是伤害系数很高的操纵,一旦误删大概会形成无法计算的丧失。在Linux体系中这类伤害尤其分明,一条复杂的语句:rm–rf/*就会把全部体系全体删除,而Linux其实不会由于这条语句的分歧理而回绝实行。在Windows中,为了避免误删,体系供应了接纳站功效。用户在实行删除操纵后,文件其实不会间接从硬盘中删除,而是被放到接纳站中。在清空接纳站前,假如发明有文件被误删,用户能够将接纳站中的文件恢复到本来的地位。而Linux并没有供应相似功效,删除命令rm一旦确认实行,文件就会间接从体系中删除,很难恢复。
接纳站组成
本文共用三个剧本完成了接纳站的次要功效:Delete剧本、logTrashDir剧本和restoreTrash剧本。个中Delete剧本是中心剧本,其感化是从头封装rm命令。相对rm的间接删除,该命令会先将文件或目次挪动到$home/trash目次下。假如用户想要将文件间接删除,能够用-f选项,delete剧本会间接挪用rm–f命令将文件从硬盘上删除。logTrashDir剧本用于将被删除文件的信息纪录到trash目次下的一个埋没文件中。restoreTrash剧本用来将放进trash中的文件或目次从头恢复到原路径下。在Linux体系中,只需将这三个剧本放到/bin/目次下,并用chmod+Xfilename付与可实行权限,便可间接利用。上面将先容每一个剧本的次要部分
Delete剧本
创立目次
起首要创立目次来寄存被删除的文件,本文在用户根目次$HOME下创建trash目次来寄存文件。详细代码以下:
清单1.创立接纳站目次
1
2
3
4
5
6
realrm="/bin/rm"
if[!-d~/trash]
then
mkdir-v~/trash
chmod777~/trash
fi
如上所示,先判别目次是不是已创建,如未创建,即第一次运转该剧本,则创立trash目次。变量realrm寄存了Linux的rm剧本地位,用于在特定前提下挪用以间接删除文件或目次。
输入匡助信息
该剧本在用户仅输出剧本名而未输出参数实行时,输入扼要匡助信息,代码以下:
清单2.输入匡助信息
1
2
3
4
if[$#-eq0]
then
echo"Usage:deletefile1[file2file3....]"
echo"Iftheoptionscontain-f,thenthescriptwillexecrmdirectly"
如代码所示,该剧本的使用格局是delete后跟要删除的文件或目次的路径,两头用空格离隔。
间接删除文件
有些用户确认生效并想间接删除的文件,不该放进接纳站中,而应间接从硬盘中删除。Delete剧本供应了-f选项来实行这项操纵:
清单3.间接删除文件
1
2
3
4
5
6
7
8
9
10
11
12
whilegetopts"dfiPRrvW"opt
do
case$optin
f)
exec$realrm"$@"
;;
*)
#donothing
;;
esac
done
假如用户在命令中到场了-f选项,则delete剧本会间接挪用rm命令将文件或目次间接删除。如代码中所示,一切的参数包含选项城市传送给rm命令。以是只需选项中包含选项-f就即是挪用rm命令,可使用rm的一切功效。如:delete–rfvfilename即是rm–rfvfilename。
用户交互
必要与用户确认是不是将文件放进接纳站。相称于Windows的弹窗提醒,避免用户误操纵。
清单4.用户交互
1
2
3
4
echo-ne"Areyousureyouwanttomovethefilestothetrash?[Y/N]:a"
readreply
if[$reply="y"-o$reply="Y"]
then#####
判别文件范例并间接删除年夜于2G文件
本剧本只对一般文件和目次做操纵,其他范例文件不做处置。先对每一个参数做轮回,判别他们的范例,关于切合的范例再判别他们的巨细是不是凌驾2G,假如是则间接从体系中删除,制止接纳站占用太年夜的硬盘空间。
清单5.删除年夜于2G的文件
<p>1
2
3
4
5
6
7
8
9
10
11
12
forfilein$@
do
if[-f"$file"–o–d"$file"]
then
if[-f"$file"]&&[`ls–l$file|awk{print$5}`-gt2147483648]
then
<p>echo
作者:
再现理想
时间:
2015-1-20 19:54
然我们对Linux的学习首先是通过对它的产生,发展,到今天仍然在不断完善开始的。
作者:
不帅
时间:
2015-1-21 21:37
Linux只是个内核!这点很重要,你必须理解这一点。只有一个内核是不能构成一个操作系统的。
作者:
老尸
时间:
2015-1-25 11:01
下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,谢谢”这样的问题。
作者:
因胸联盟
时间:
2015-1-26 15:37
首先Linux是开源的,这也是最主要的原因,想学windows,Unix,对不起我们没源代码。也正是因为这样,Linux才能够像滚雪球一样越滚越大,发展到现在这种规模。
作者:
柔情似水
时间:
2015-2-4 15:14
硬盘安装及光盘安装,清楚了解安装Linux应注意的有关问题,如安装Linux应在最后一个分区内,至少分二个分区。
作者:
莫相离
时间:
2015-2-6 14:26
最好先搜寻一下论坛是否有您需要的文章。这样可以获得事半功倍的效果。
作者:
兰色精灵
时间:
2015-2-7 13:16
Windows?是图形界面的,Linux类似以前的?DOS,是文本界面的,如果你运行了图形界面程序X-WINDOWS后,Linux?也能显示图形界面,也有开始菜单、桌面、图标等。
作者:
若天明
时间:
2015-2-19 12:21
虽然大家都比较喜欢漂亮的mm,但是在学 linux 的过程中,还是要多和“男人”接触一下:P 遇到问题的时候,出来看说和上网查之外,就是要多用 linux 下的 man 命令找找帮助。
作者:
海妖
时间:
2015-3-1 21:04
在系统检测不到与Linux兼容的显卡,那么此次安装就可能不支持图形化界面安装,而只能用文本模式安装等等。
作者:
第二个灵魂
时间:
2015-3-10 23:44
Linux操作系统这个名词记得在很早以前就听过,但当时并不知道具体是什么样的操作系统,只知道是一个与嵌入式密切相关的操作系统。
作者:
小妖女
时间:
2015-3-17 16:08
了解Linux的网络安全,系统的安全,用户的安全等。安全对于每位用户,管理员来说是非常重要的。
作者:
飘灵儿
时间:
2015-3-17 16:08
随着实验课程的结束,理论课也该结束了,说实话教OS的这两位老师是我们遇到过的不错的老师(这话放这可能不太恰当).
作者:
飘飘悠悠
时间:
2015-3-24 10:36
我想即使Linux高手也很难快速准确精练的回答你。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2