巧妙删除带子目录的目录是什么(怎样删除子目录)

发布时间:2024-03-05 点击:53
本文主要介绍什么是巧妙的删除一个有子目录的目录(如何删除子目录),下面一起看看什么是巧妙的删除一个有子目录的目录(如何删除子目录)相关资讯。
比如操作系统中有一个目录文件compierebook,它下面有两个子目录文件,分别是chap01和chap02。现在用户需要删除目录文件compierebook。这时候我该怎么办?如果用户直接使用rmdir compierebook命令,系统会提示错误消息 目录不为空,不能删除。让用户只使用命令先删除每个子目录,然后再删除这个compierebook目录文件?其实不是,下面我给大家介绍一个删除了子目录的目录文件。即同时删除所有子目录文件和当前目录文件。
i .文件创建和删除的控制和管理。
在unix操作系统中,普通的文件和目录都是文件。因此,在操作系统中,普通文件和目录文件都对应一个文件名和inode号。当用户创建目录时,关于所创建目录的文件名和信息节点信息将被添加到该文件的父目录文件中。同样,删除一个目录文件时,其上级目录文件中要删除的目录的信息也会被删除。所以在删除一个目录时,系统会检查目录文件,看是否有下级子目录的信息。如果有,它会拒绝删除并提醒用户 除非目录为空,否则无法删除。如果没有子目录信息,那么系统将删除用户指定的目录。因此,在unix系统中删除目录时,必须在第一级删除它。现在删除子目录,然后删除上一级目录。
第二,在rmdir中取多个参数。
在大多数情况下,当我们使用rmdir命令删除一个目录时,我们只需要一个目录文件名参数,比如rmdir compierebook。其实你看看这个命令的帮助就可以发现,这个命令可以带多个文件名参数,也就是同时删除多个目录文件。例如,用户可以使用rmdir目录文件1、目录文件2和目录文件3(用空格分隔)同时删除多个目录文件。需要注意的话,删除目录的时候是有顺序的。即先删除目录文件1,再删除目录文件2,最后删除目录文件3。因此,虽然在同一个命令中引入了三个参数,但在删除时并不是一起删除,而是按照参数的顺序依次删除文件。
这能给我们一些启示吗?由于它们实际上是一个一个删除的,所以我们可以先放子目录文件参数,最后放上级目录文件参数。可以一次性删除带子目录的目录文件吗?如上例所示,如果作者使用rmdir chap01 chap02 co。mpierebook会怎么样?执行完这个命令后,大家会惊讶地发现,这个命令居然可以成功执行。然后再看相关目录,你会发现这个目录文件(包括它的两个子目录文件)已经被删除了。因此,当删除一个带有子目录的目录文件时,我们不 不需要多次执行rmdir命令。而是只需要在这个命令中依次填入多个目录文件名参数,然后执行一次。执行该命令时,系统将首先删除子目录chap01,然后删除其上级目录文件compierebook中关于chap01目录的文件名和inode信息。完成此步骤后,删除第一个文件chap02。它也执行这两个步骤,在删除自己目录的同时更新上级目录文件的相关信息。然后删除第三个文件。删除第三个文件时,由于目录文件中没有子目录文件信息,所以可以正常删除第三个文件。
在执行这个命令时,我们应该注意三个细节。首先,这个命令可以接受多个目录文件参数,不同的参数用空格分隔。注意这不是用分号或冒号之类的符号分割的,只是用空格。第二,这个命令中的参数文件是有顺序的。如果目录文件的参数位置错误,很可能删除作业不会成功,甚至会出现一些莫名其妙的结果。对于这一点,笔者会在下面的内容中给出具体的例子。第三,删除目录文件时,用户必须位于目录之外。如果此命令中有多个目录文件名参数,它应该在这些指定的目录之外。否则,将提示用户不能删除这些目录。这很好理解,因为windows操作系统中也有类似的控件。
我 d最好强调一下,删除一个目录文件时,主要会进行两个操作,即删除自己的目录和更新上级目录中的信息。当一个命令有多个目录文件参数时,这两个操作也同时完成。而不是先删除所有指定的目录文件,再更新其上级目录文件中的信息。了解这些内容,对真正理解rmdir命令删除多个目录文件会有很大帮助。
3.如果目录文件名放置不当会怎么样?
使用这个rmdir命令时,如果没有正确放置这个目录文件名参数的位置,会发生什么情况?例如,作者现在以这种格式编写该命令:rmdir compriere book chap01chap02。执行这个命令后,我们将查看系统目录,发现目录文件compierebook没有被删除。但是,它的两个子目录文件chao01和chap02已经被经典被删了。最后,系统会提示用户 除非目录为空,否则无法删除。这到底是怎么回事?
在解释这个原因之前,笔者再举一个例子。例如,作者现在使用命令rmdir chap01 compierebook chap02。将第一个目录文件参数的位置与第二个目录文件参数的位置交换。然后执行这个命令,会发生什么?实际上,这个命令的执行结果和上面的命令是一样的。compierebook目录文件仍然存在,但它和两个子文件已经被删除。但是,最后系统还是会提示错误信息 目录不为空,删除失败。unix操作系统在改变什么模式?
事实上,我们只需要将这个命令分成三个命令。例如,rmdir compierebook chap01 chap02命令可以分解为rmdir compierebook、rmdir chap01和rmdir chap02。当执行第一个命令时,第一个命令的执行失败,因为此时它下面的子目录文件还没有被删除。然后执行第二条命令,由于目录文件chao01下没有子目录文件,可以正常删除。同样,第三个命令也正确执行了。从上面的分析至少可以看出三点。第一,删除一个目录失败不会影响其他目录的删除。其次,该命令不会循环。即删除第一个目录文件时,如果失败,直接跳过。其他目录删除完成后,不会再回来尝试删除上次删除失败的目录文件。因为没有循环操作,所以这个目录文件的参数位置的放置直接影响这个命令的执行结果。第三,如果成功删除目录,将不会有错误警告消息。但是,如果目录删除失败,将会提示一条错误消息。如果两个目录文件没有删除成功,那么系统会提示两条错误信息。并将提示您目录文件未成功删除。因此,在执行该命令后,如果出现错误信息,仔细检查该是非常必要的。特别是通过比较错误信息的数量和提供的目录文件参数的数量,可以判断成功删除了多少目录文件。如果用脚本程序实现这个功能,可以用cat命令统计错误信息的个数,然后自动与参数个数进行比较,得出成功删除了多少个目录文件的结论。
第四,使用mkdir构建目录树。
理解了这个rmdir目录文件删除操作的原理之后,就更容易理解mkdir命令构建目录树了。创建目录树就是一次创建多个目录,而且是有子目录的目录。换句话说,现在需要一次性建成。三个目录,computerbook,chap01和chap02。最后两个目录是第一个目录的子目录。这三个目录现在都不存在了。虽然一个一个的运行mkdir命令最终可以达到既定的效果,但是操作起来显然比较麻烦。如果您想创建更多的目录,您必须执行多个命令。其实根据上面rmdir命令的工作原理,你也可以想象一下,通过给mkdir命令添加多个参数,可以一次性建立目录树。要实现上述要求,可以使用命令mkdir calculator book chap 01 chap 02。注意,参数的顺序非常重要。如果参数的位置颠倒,则命令可能无法成功执行。将不创建目录文件,或者只创建部分目录。所以在使用这个命令的时候,需要注意参数的顺序。同时,需要明确的是,在多个参数的情况下,建立每个目录的动作是相对独立的。了解了这些内容之后,使用mkdir命令一次性创建一个目录树就会容易很多。
标签:
目录删除文件命令
了解更多什么是巧妙的删除一个有子目录的目录(如何删除子目录)相关内容请关注本站点。


电脑硬盘啥牌子好
移动硬盘插电视不显示
那种固态硬盘快,目前最快的固态硬盘
win10系统更新在哪(windows10更新在哪里打开)
windows未能启动 okldr(windows未能启动 0xc00000e9)
拇指玩怎么把游戏安装到内存卡,怎样用拇指玩把游戏安装到外置SD卡上
vivo手机如何连接电脑传输文件(vivo手机连接到电脑)
笔记本电脑哪个品牌的性价比高,3000哪个品牌的笔记本电脑性价比最高
136 8686 3664
李经理
 发送短信