在linux系统中创建、复制、删除目录或文件时,常常会用到递归参数。常用的递归参数有-p,-r,-P等。为方便初学者学习、分辨与记忆,将其分类整理如下。
一般常用到递归的命令有:mkdir、cp、rm、ls、grep、chmod、chown等。
而mv命令没有递归参数,所有用mv命令移动(重命名)文件夹时,不需要参数。
常见递归有两种:
一是从指定目录向上级目录递归。使用-p参数,意为parents,代表命令mkdir等
如:执行mkdir./tmp/longya/file/test/命令创建test目录。
1.如果要创建test目录,要先确定其父目录,即file目录,是否存在。
2.如果存在,则创建test目录。
3.如果不存在,那么就需要创建其父目录(parents),即file目录。
4.如果要创建file目录前,要先确定其父目录,即longya目录,是否存在。之后一直重复第1,2,3步,直到找到最上一级存在的目录,再反过来自上而下进行目录的创建,完成命令的执行。
这种向上递归的方式,用-p参数。
二是从指定目录向其下级目录递归。使用-r参数,意为recursive,代表命令cp,rm,ls等
如:执行cp ./tmp ./longya命令复制tmp目录为longya
1.如果要复制tmp目录,就需要复制其下的longya目录。
2.如果要复制longya目录,就需要复制其下的file目录。
3.重复1,2步,直到完成工作。
这种向下的递归方式,用-r或-R参数。
其中ls命令的-r参数被反向排序功能使用reverse,所以使用-R参数做递归。
而chmod、chown等没有-r的冲突而直接采用-R参数表示递归的命令
所以在修改用户权限时使用,先修改上层目录权限,然后才是目录下的文件权限修改。
转载自:巧记linux常用命令中的递归参数-r(R)和-p_longyamiao的专栏-程序员宝宝_linux递归 - 程序员宝宝