本文编写于 118 天前,最后修改于 67 天前,其中某些信息可能已经过时。

在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参数表示递归的命令,可能只是程序设计者的喜好吧。