Linux整个系统就是一个目录树结构,每个目录也是一个文件进行保存的,占用大小为4K的一个文件节点(node)。存在两种目录路径的表示方法:
- 相对路径:路径从当前所在位置开始,进行相对的计算。
- 绝对路径:以根目录“/”开始,写出所有经过的目录路径。

目录管理主要涉及如下几个方面:目录的切换、目录显示、目录创建与删除、权限设置等。

1.cd

change directory的缩写,功能就是改变目录。参数为绝对路径或者相对路径。

格式:cd [目录名]

常用技巧
快速切换到家目录:

user@ubuntu:/usr/local$ cd ~
user@ubuntu:~$ user@ubuntu:/usr/local$ cd
user@ubuntu:~$

跳转到进入当前目录之前的目录:

user@ubuntu:/usr/local$ pwd
/usr/local
user@ubuntu:/usr/local$ cd -
/usr
user@ubuntu:/usr/$ cd -
/usr/local

将上个命令的参数作为cd的参数使用:

user@ubuntu:/usr/local$ cd -
/usr
user@ubuntu:/usr$ cd !$
cd -
/usr/local

2.pwd

输出当前所在目录的绝对路径。

user@ubuntu:/usr/local$ pwd
/usr/local

3.mkdir/rmdir

1.mkdir

mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。同时也不能与同文件夹下的文件名重名。

-m, –mode=模式,设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask
-p, –parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
-v, –verbose 每次创建新目录都显示信息
–help 显示此帮助信息并退出
–version 输出版本信息并退出

其中-p选项可以创建长路径目录,非常方便,也就是多级不存在的目录在的新建(下面的命令中test目录和hello目录都不存在,如果不使用-p选项,则无法创建)

$ mkdir -p /home/user/test/hello/

2.rmdir

删除一个空目录,只能删除为空的目录,-p选项可以将连同上层的空目录一起删除。

4.获取目录名与文件名

basename获取文件名称,dirname获取目录名(没有斜杠结尾)。

user@ubuntu:~$ basename /etc/shadow
shadow
user@ubuntu:~$ dirname /etc/shadow
/etc

5.目录权限与umask

粘滞位是一种应用于目录的权限类型,通过设置粘滞位,使得只有目录的所有者才能删除目录中的文件,即使是相同用户组或者其他用户拥有足够的权限也不能执行删除操作。使用chmod +t选项应用于目录即可:

$ chmod a+t directory_name

在新创建目录和文件时,系统会有有一个预设的权限信息,这个信息是由umask命令指定的,用来确定当前用户在建立文件或目录时的默认权限值。预设权限如下:
- 新建文件时,预设没有可执行权限,只有rw两个,最大为666,也就是-rw-rw-rw-
- 新建目录时,由于x与是否能进入此目录有关,因此默认开放所有权限777,也就是drwxrwxrwx

直接输入umask会以数字形式显示,-S选项可以符号形式显示。

user@ubuntu:~$ umask
0022
user@ubuntu:~$ umask -S
u=rwx,g=rx,o=rx

umask的值表示,预设权限减去umask的值得到剩下值就是所在目录或文件的权限,也就是umask的值是被削减的权限。
预设的umask中,root身份的umask默认是022,对于一般身份者,默认的umask是002。

6.只列出目录

这个问题是非常实际但是可以考验命令熟悉程度的,现列举四种方法如下:

ls -d */:这是利用了ls的列举目录选项,很容易想到
ls -F | grep "/$":使用-F选项会在所有输出项添加一个代表文件类型的字符(@、*、|、/等),目录项添加的就是“/”
ls -l | grep "^d":这也是利用-l选项进行筛选,目录的文件类型字符是“d”开头标识
find . -type d -maxdepth 1 -print:这是利用find的选项进行筛选

更多相关文章

  1. Re:从零开始的Linux之路(文件权限)
  2. ubuntu下的Samba配置:使每个用户可以用自己的用户名和密码登录自
  3. linux使用技巧,返回上一次目录
  4. cp dir recursivly不包括2个子目录
  5. Linux命令-权限管理命令:chmod
  6. Linux中/proc目录下文件详解之(二)
  7. linux /usr /var /etc 目录
  8. debain 系统 ll 命令无法使用.目录和文件没有颜色区分解决之道
  9. 通过排除其父文件夹为多个目录创建单个tar文件

随机推荐

  1. 您是否认为PHP中的错误形式是在类方法中
  2. 040-PHP使用闭包函数来进行父实例的变量
  3. 如何通过PHP将HTML页面作为字符串获取?
  4. Php DateTime :: setDate()不在第一个DateP
  5. 使用ajax在服务器端恢复json时出错
  6. 在Cake PHP中更新现有的sql数据
  7. Zend数据库适配器-未捕获异常-堆栈跟踪显
  8. PHP中使用sleep函数实现定时任务实例分享
  9. PHP脚本在我的Wordpress文件中。请解码或
  10. 微信JS-SDK——微信分享给朋友