一、目的
最近研究Linux下使用OpenSSL实现文件加密制作CA证书得过程中遇到的问题:过程中创建许多的文件夹和文件 使用了包括mkdir和touch的几个命令去实现,但是这两个命令都可以创建文件夹,那它们有什么区别又该在什么情况下使用呢?
本文将介绍linux下新建文件或文件夹、删除文件或文件夹命令。
touch能够新建文件,mkdir用来新建文件夹。rm用来删除文件或文件夹。
本文使用centos6.9发行版做为描写叙述基础。
umask=0022
touch test.txt
权限=666-022=644=-rw-r--r--
mkdir test
目录权限=777-022=755=drwxr-xr-x
umask是什么?
当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中设置umask值。
如何计算umask值? umask命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、其他用户)存在一个相应的umask值中的数字。对于文件来说,这一数字的最大值分别是6。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来说,umask中各个数字最大可以到7。
该命令的一般形式为:umask nnn
其中nnn为umask置000 - 777。
我们只要记住u m a s k是从权限中“拿走”相应的位即可。下表是umask值与权限的对照表:
umask 文件 目录
--------------------
0 6 7
1 6 6
2 4 5
3 4 4
4 2 3
5 2 2
6 0 1
7 0 0
--------------------
如:umask值为022,则默认目录权限为755,默认文件权限为644。
二、touch命令
linux下新建文件的方式有非常多,比如:使用vi新建文件、使用cp命令拷贝一个文件、可是最经常使用的还是使用touch命令新建一个文件。
语法:touch [options] filename
-a:改变访问时间
-m:改变改动时间
-t timestamp:改变访问时间和改动时间为timestamp
假设不指定不论什么选项。那么touch命令会新建一个文件。
假设指定了-t timestamp选项,那么touch命令会改动文件的访问时间和改动时间为timestamp。
假设使用了-a选项,那么touch命令会改动文件的访问时间为当前时间。
假设使用了-m选项,那么touch命令会改动文件的改动时间为当前时间。
三、mkdir命令
语法:mkdir [options] dirname
-p:递归创建文件夹
-mmode:新建文件夹,并设置文件夹的文件訪问模式为mode
使用-p选项递归的创建zsy/hxn文件夹。
使用-m选项指定新建文件夹的文件訪问模式为770,即rwxrwx---。
四、rm命令
语法:rm [options] filename/dirname
-f:强制删除文件或文件夹,即使文件夹不为空
-r:递归的删除文件或文件夹
-i:删除文件或文件夹前须要确认
在实际使用中。-r和-f选项一般同一时候使用,用来强制、递归的删除指定的文件或者文件夹。
对于关键的文件或者文件夹,在删除时建议使用-i选项。避免误操作。
使用rm命令时切记小心谨慎避免删库!!!