在linux系統(tǒng)中創(chuàng)建、復(fù)制、刪除目錄或文件時,常常會用到遞歸參數(shù)。常用的遞歸參數(shù)有-p,-r,-P等。為方便初學(xué)者學(xué)習(xí)、分辨與記憶,將其分類整理如下。
一般常用到遞歸的命令有:mkdir、cp、rm、ls、grep、chmod、chown等。
而mv命令沒有遞歸參數(shù),所有用mv命令移動(重命名)文件夾時,不需要參數(shù)。
常見遞歸有兩種:
一是從指定目錄向上級目錄遞歸。使用-p參數(shù),意為parents,代表命令mkdir等
如:執(zhí)行mkdir./tmp/longya/file/test/命令創(chuàng)建test目錄。
1.如果要創(chuàng)建test目錄,要先確定其父目錄linux常用命令,即file目錄,是否存在。
2.如果存在,則創(chuàng)建test目錄。
3.如果不存在,那么就需要創(chuàng)建其父目錄(parents),即file目錄。
4.如果要創(chuàng)建file目錄前,要先確定其父目錄,即longya目錄,是否存在。之后一直重復(fù)第1,2,3步,直到找到最上一級存在的目錄,再反過來自上而下進(jìn)行目錄的創(chuàng)建,完成命令的執(zhí)行。
這種向上遞歸的方式,用-p參數(shù)。
二是從指定目錄向其下級目錄遞歸。使用-r參數(shù)linux常用命令,意為recursive,代表命令cp,rm,ls等
如:執(zhí)行cp ./tmp ./longya命令復(fù)制tmp目錄為longya
1.如果要復(fù)制tmp目錄,就需要復(fù)制其下的longya目錄。
2.如果要復(fù)制longya目錄,就需要復(fù)制其下的file目錄。
3.重復(fù)1,2步,直到完成工作。
這種向下的遞歸方式,用-r或-R參數(shù)。
其中l(wèi)s命令的-r參數(shù)被反向排序功能使用reverse,所以使用-R參數(shù)做遞歸。
而chmod、chown等沒有-r的沖突而直接采用-R參數(shù)表示遞歸的命令,可能只是程序設(shè)計(jì)者的喜好吧。