写一些Linux文件夹操作的一些感悟。
rwx 权限 | 对目录的作用 |
---|---|
读权限(r) | 表示具有读取目录结构列表的权限,也就是说,可以看到目录中有哪些文件和子目录。一旦对目录拥有 r 权限,就可以在此目录下执行 ls 命令,查看目录中的内容。 |
写权限(w) | 对于目录来说,w 权限是最高权限。对目录拥有 w 权限,表示可以对目录做以下操作:在此目录中建立新的文件或子目录;删除已存在的文件和目录(无论子文件或子目录的权限是怎样的);对已存在的文件或目录做更名操作;移动此目录下的文件和目录的位置。一旦对目录拥有 w 权限,就可以在目录下执行 touch、rm、cp、mv 等命令。 |
执行权限(x) | 目录是不能直接运行的,对目录赋予 x 权限,代表用户可以进入目录,也就是说,赋予 x 权限的用户或群组可以使用 cd 命令。 |
首先写明一点,如果你想允许任何一类用户对文件夹进行操作,务必需要添加X权限,要不然r与w的权限添加了也是枉然。
Linux的文件操作的一般命令为cp,mv,rm, touch等,也就是作为的增删改查。但作为Linux来说,文件夹与文件其本质都是文件。文件夹的本质为存在了文件目录的文件。
上面的rwx是我网上所复制的文件夹权限的操作。
针对文件夹的增删改查,我这里做一个简单的记录。
首先,写
第一个增的,也就是在文件夹下你可以新建文件。
对照上面的要求,本人测试,最小的情况下,你需要拥有该目录的wx权限,你就可以在该目录下新建文件。
第二个是删除
一般我们用的删除命令为rm -rf,这是一个非常危险的命令,所有有些人会用过一些方式将rm的执行用mv来代替。
这里我先介绍rm -rf递归删除文件的权限要求,很多时候在删除文件的时候,经常会出现权限问题,导致无法删除。
比如删除 目录 rm -rf /home/vbird/dir
这样的递归删除,将检查所有dir以及dir下面的所有子目录权限。这里需要强调一下,每个文件[不包含目录]能否被删除只跟自己的目录权限有关系,只有自己的目录权限拥有rwx,才能删除该文件。
如果是目录需要检查是否为空目录,如果为空目录视为普通文件。如果目录下面存在文件,需要检查对该目录的权限是否拥有rwx权限,才能对该目录下的文件删除进行操作.
所有,如果你想将dir下面的所有文件[包含文件夹]删除,必须拥有对每个非空文件的rwx权限,才能删除该目录。
第三个是mv[伪删除]
这个需要分两种情况,第一种属于在改名也就是在同目录下mv,这个时候你只需要拥有该文件上级目录的wx权限既可.
上面的移动文件的情况,比如mv /home/bird/file.c file_1.c
这种情况,需要用户对文件的原始目录与目标至少有wx的权限才可以,但如果是目录的话,情况需要做一些添加
mv /home/bird/dir dir1
这中情况下,不光需要前面提到的目录要求,还需要对执行的目录dir需要至少有wx的权限.
试想一下也对,简单的将目录理解为一个小型的数据库文件,当你将一个目录转移到另一个地方。该目录的源父目录以及目的地父目录的数据信息都会反生变化,并且由于转移的本身就为目录,所以该目录的自身信息也将发生变化[也就是该目录第一层的文件与文件夹]
待续...cp命令的解释...