Linux学习-目录操作

正在学习Linux,记录一下学习历程。奋斗

文中所指的文件是广泛定义,即包括普通文件,目录,伪文件。

更多参见Linux学习-文件系统


路径名&工作目录

路径名:通过列举由/分隔的目录序列描述文件树的一个位置。也称路径。

工作目录:当前正在工作的目录。也称当前目录。

每当希望使用工作目录中的文件时,无需指定整个路径,只需键入文件名即可。

工作目录是各种操作的基础,在需要时可以进行改变。


绝对路径&相对路径

绝对路径:目录序列从根目录开始。

相对路径:目录序列从工作目录开始。

系统假定任何一个/开头的路径都是绝对路径,假定任何不以/开头的路径都是相对于工作目录。

路径名缩写(实际上使用路径名缩写的路径是绝对路径,路径的一部分用缩写代替):

..  指父目录,相当于向上移动一层。

.  指工作目录本身。

~  指home目录。

ps:当必须指定绝对路径,使用路径名缩写可以避免输入长的路径名,避免拼写错误,也可以实现路径的动态指定,根据程序所处位置,进行路径的补全。


在目录树中移动

pwd 显示工作目录,确定当前所处的目录树位置。

cd命令用于切换工作目录

cd 没有指定目录名称,切换到home目录。

cd  -  切换到上一次访问的目录。

cd 指定路径名,切换到路径名对应目录。

ps:

如果好奇根目录的父目录是什么,其实它就是根目录本身。因此如果输入多个../../../../../,也不会报错。


创建新目录

mkdir 创建新目录

可以自由地命名新目录,字母,数字,么由特殊含义的标点符号作为目录名称。(大多数情况下,坚持只使用小写字母将使生活更轻松)

创建目录时,既可以使用绝对路径名,也可以使用相对路径名。

注意:当父目录不存在,就不能创建子目录。

可以使用 -p 选项自动创建所有需要的父目录。


移除目录

rmdir 移除目录

是mkdir的逆操作。

注意:当一个目录为空时,才能移除这个目录。

使用 -r 选项可以移除不为空的目录,它会递归移除所有的子目录及其内容(为了保证目录为空才可移除这个规则,从最底层目录开始移除,递归移除到指定目录)。

使用 -p 选项可以自动移除所有需要移除的父目录。 若子目录移除后父目录为空则把父目录也移除,递归,直到父目录不为空。

注意:不能删除工作目录和根目录之间的任何目录。

将文件系统看作一棵树,树干是根目录,每个树枝都是一个子目录,工作目录就是正处在的树枝。移除一个目录就先砍掉树枝一样,移除目录的限制就是不能砍掉正在支撑你的树枝。


移动或重命名目录

mv 可以将目录从一个位置移动到另一个位置,如果新位置和原位置在同一个目录中,那么实际结果就是对原始目录重命名。

mv a/b  a/c/d

相当于将工作目录下的a/b移动到工作目录下的a/c并命名为d


使用目录栈

shell提供了一个类似栈的功能,来存放目录名称。

pushd命令将目录的名称压入目录栈中,popd命令从栈中弹出一个目录名称,dirs命令显示栈的内容。

目录栈是一种高级工具,运行维护一个目录列表,每当需要时,可以将工作目录改变为列表中的一个目录。

在任何时候,栈顶的目录名称就是当前的工作目录。

详情参见:Linux学习-目录栈


最重要的程序:ls

list files列举文件

如果未指定列举目标,将显示工作目录中的文件。

当ls输出到终端时以列的形式按字母顺序排序显示。

当ls的输出重定向到文件或管道时,ls以每个文件名占一行的形式输出结果。

选项:

-C  强制ls以列的形式将输出写入到文件或管道中。

-1  强制ls以每个文件名占一行的形式将输出写到终端。

-r  以相反顺序显示文件名(默认按字母表顺序排序)。

-R  列举指定目录中的所有直接或间接的子目录和文件的信息,也就是显示整个目录树的信息。

-F  在特定类型文件的名称之后显示一个标志。

--color  通过颜色来标识不同类型的文件,在许多系统上ls是ls --color=auto的别名,即仅当输出要在终端上显示时才使用颜色。

-s  在每个文件名前以KB为单位列出文件的大小。

-h  与-s合用,显示一个合适的单位,h指human-readable。

-a  查看全部文件,包括.文件(隐藏文件)。

-l  以长列表形式显示。(文件类型,权限,链接数,文件属主的用户标识,用户标识所属的组,文件大小,修改时间,文件名)

-u  显示文件访问(上一次读取文件)的时间。

-t  按时间顺序(修该时间)显示文件。

-d  不要查看目录内部。

-F 选项显示的标志
标志 含义
普通文件:非执行文件
* 普通文件:可执行文件
/ 目录
@ 符号链接
| 命令管道/FIFO

ps:

命令前加\忽略任何别名。



磁盘空间使用情况

在文本文件中,一个字节可以存放一个字符。

在文件系统中,空间以固定大小的组块进行分配,固定大小的组块称为块(block)。

根据文件系统的不同,块的大小有512字节,1KB,2KB,4KB等。1KB在Linux文件系统中常用。

为文件所分配的最小的磁盘空间数量就是一个块。

磁盘存储空间也以固定大小的组块分配,称之为分配单元或簇。

簇的大小取决于文件系统和存储设备,通常为8K。

文件系统中所有的数据都组织成块,其中有一个块,称为超块,是一个特殊的数据区,存放与文件系统本身有关的关键信息。

可以用dumpe2fs程序检查超块内容,可以显示出文件系统所使用块的大小

查看磁盘使用情况命令:

ls -s 在文件名前以KB为单位列出文件大小。

du  显示文件所使用的存储空间总量,用来统计一个目录树中全部文件所使用的磁盘空间。

du -s  只显示总和。

du -c  在输出末尾显示总量。

du -s  显示它所处理的每个目录和文件的大小。

df  显示每个文件系统已经使用了多少磁盘空间,以及还有多少磁盘空间可用。

quota  检查在共享系统中每个用户标识的磁盘空间配额的使用及限制情况。

ps:

均有-h选项,用来以适合人类阅读的方式显示输出。

上述程序以不同的方式估计存储空间的使用情况,所以如果数字有些出入的话,不要感到惊讶。


通配符

每当键入以文件名作为参数的命令时,可以通过使用特定的元字符——通配符,指定多个文件名。

通配符与正则表达式元字符很相似,但是并不相同。通配符是shell元字符的一部分。

点击查看

shell元字符详情

正则表达式详情

通配符
符号 含义
* 匹配任何0个或多个字符构成的序列
? 匹配任何单个的字符
[list] 匹配list中的任何字符
[^list] 匹配不在list中的任何字符
{string1|string2...} 匹配其中一个指定的字符串
[[:lower:]] 匹配一个小写字母
[[:upper:]] 匹配一个大写字母
[[:digit:]] 匹配一个数字
[[:alnum:]] 匹配一个大写字母或小写字母或数字
[[:alpha:]] 匹配一个字母
当使用通配符时,shell将解释模式,并在运行命令之前以合适的文件名替换模式。即在参数传递给程序之前,通配符已变成实际文件名。



猜你喜欢

转载自blog.csdn.net/qq_31730735/article/details/80532684
今日推荐