Linux学习第八篇--linux文件的操作

来源:互联网 发布:106短信群发软件 编辑:程序博客网 时间:2024/06/16 14:50

特殊的目录标识

在linux中不仅包含相对目录和绝对目录,还有一些其他的特殊目录标识,比如:

- 代表上一个工作目录

~ 代表当前用户家目录

~ 用户名  表示指定用户的家目录

[

. 表示当前目录

.. 表示上一级目录

]

这里需要区分的是 - 和 .. 的区别:

-表示的是上一个目录,而 .. 表示的上一级目录.

举个例子:

如果你之前在 /home/panda/这个目录下,现在你进入了/home/cat目录.

- 就代表着/home/panda 这个目录,这是你上一个工作的目录.

但是 .. 代表着/home这个目录,这是你当前工作目录的上一级目录.

注意:所有的目录下面都存在 .(当前目录)和..(上一级目录)这两个,目录,包括根节点 / ,只不过在根节点下 . 和 .. 都表示当前目录.

目录处理的常用指令

通常来说,我们对目录的操作无外乎增(创建),删(删除目录),改(变更目录),查(进入,查看目录).

下面我们就了解一下这几个功能需要使用的命令:

1.查看目录(进入目录)

在传统意义上的查看目录应该是查看目录的信息,比如我们之前说过的ls -al命令,就可以查看该目录的信息.

查看目录还可以理解为查看当前目录的位置.如果我们需要查看当前目录的位置的话,我们可以使用命令:pwd

pwd:该命令的作用是显示当前所在的目录.

pwd(print Working Directory),意思是显示出当前工作目录.

如图所示:


我当前处于在/usr/local/mysql目录下,当我输入pwd 命令时,就会显示我当前所处的目录/usr/local/mysql.

当然pwd命令还有一些参数,比如 -P(大写),显示出确实的路径,而非链接路径.

这个参数可以这么理解,如果当前文件实际上是一个类似于windows快捷方式的东西,那么当使用pwd -P时,显示的快捷方式关联文件的位置,而不是当前快捷方式所处的位置.

查看文件/目录的详细信息

在linux中如果想要查看一个文件的详细可以使用ls命令,该命令在介绍权限的时候提到过.
ls(list):列出文件的详细信息,它有如下参数:
1.a 列出全部的文件,包含隐藏文件.
2.A,列出除了 . 和 ..两个目录之外的所有文件(包含隐藏文件).
3.d 列出目录本身,但不列出目录的内容.
4f,直接列出结果,不排序.
5.F 根据文件/目录等新的,给予附加的数据结构,比如目录 panda则表现为panda/
6.h 将文件的大小人性化显示(kb/mb)
7.i 列出inode节点号
8.列出文件的属性,权限 等数据.
9,n 显示UID和GID而非用户名和组名
10.r 将排序反向输出
11.R 将子目录的数据也列出来
12.S 按文件大小排序
13.t 按文件时间排序
14. --color=never:不根据文档特性显示颜色
--clolor=always.显示颜色
--color=auto:系统自己判定是否显示颜色
15.--full-time:显示完整的时间.
16.--time=(atime,ctime),输出权限时间或者变更权限时间(非内容变更).

2.增加目录(添加目录)

  在linux中如果需要创建一个新的文件夹可以使用命令,mkdir.

mkdir(make directory):创建一个新的目录

该命令有两个可选项,-m 和 -p .
1. m选项 配置文件的权限. 比如  mkdir -m 555 panda,这样就会在创建panda这个目录的同时给panda目录附上 dr-xr-xr-x 权限.
2. p选项  允许创建多级目录(默认创建多级目录需要一层一层的创建) 比如,当我们使用mkdir out/panda的时候系统将会报错找不到out这个目录,但是我们加     上-p选项之后,就可以创建成功

3.删除目录(文件)

在linux中删除一个目录可以使用命令:rmdir

rmdir(remove directory):移除目录(需要注意的是,此命令只可以删除空目录)

该命令有一个可选的参数 -p .
1.p 递归删除上层空目录,比如,我们现在有一个文件结构 /tmp/out/panda/remove,其中从out开始到remove均为空目录,当我们使用
 rmdir -p /tmp/out/panda/remove 命令删除remove文件夹的时候,将会联同/tmp/out/和/tmp/out/panda一块删除,
但是因为tmp文件夹不为空,所以不会被删除.

那么我们要如何删除非空文件夹呢?

rm(remove):删除文件

该命令有三个参数:
1. f (force)表示强制删除.
2. i (information) 在删除前会询问是否删除.
3. r(recursion) 递归删除(联同子目录的数据一块删除).

4.改动目录(变更目录)

改动目录的操作,常见的应该有下面几种:
1.切换目录
2.移动目录
3.复制目录
切换目录,我们通常使用cd命令.

cd(change directory):变更工作目录

我们可以使用cd命令来变更目录,比如cd /home 标识切换到/home路径下,当然我们也可以使用cd 加特殊目录标识来切换目录.
比如:
cd .. 表示切换到上一级目录.
cd - 表示切换到上次工作目录.
cd ~ 切换到当前用户家目录
cd ~用户名 切换到指定用户的家目录
cd 不加参数 等同于 cd ~ 切换到当前用户家目录

mv(move):移动目录

mv(move) param1 param2 表示将param1文件或目录移动到 param2处.
该命令有三个常用参数:
1.f(force),强制移动目录,如果目标目录已经存在,那么将会覆盖掉.
2. i(information) 若param2存在时,询问是否覆盖
3.u(update) 若目标档案已经存在,同时param1比较新,才会更新.
当我们需要将一个目录或文件移动到其他地方去时,可以使用mv命令.

cp(copy):复制文件(目录)

cp(copy),复制文件或目录 cp file1 file2 表示将file1复制到file2
cp命令有以下几个主要选项:
1.a(all):相当于选项pdr的组合,
2.d:如果被复制的文件是链接文件,那么复制该链接文件
3.f(force):若目标文件已经存在,那么删除目标文件之后再复制.
4.i(information):若目标文件已经存在,询问是否覆盖.
5.l(link):创建硬链接,而非复制文件本身.硬链接涉及到inode节点,可以先看一下补充A这篇博客.Linux学习补充A-inode节点
6.p: 联同文件的属性一起复制过去.
7.r: 递归复制
8.s 创建软连接,类似于windows的快捷方式
9.u:如果file1比file2新才更新
cp命令可以一次复制多个文件,比如:cp file1 file2 file3 .....filex  file_target 其中file1到filex都是需要复制的文件,file_target则是目标文件.
如果复制多个文件,那么目标文件即file_target必须是目录.

umask:目前用户在建立档案或目录时候的权限默认值

环境变量和PATH

环境变量(Environment Variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数.
环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息.比如Linux的环境变量PATH.
PATH是告诉操作系统,当需要运行某个程序,但是却没有给出这个程序的绝对路径的时候,系统出了会在当前目录下寻找改程序,还会到PATH指定的目录下去寻找.
也正因为此,我们才可以使用类似于cd,cp这样的命令,而不用输入/usr/bin/cp 来执行该命令.
PATH这个变量的内容是由一堆目录组成的,多个目录之间使用冒号(:)分隔.
假如遇到这种情况,PATH指定目录中有两个目录,同时都含有ls命令,那么执行ls命令实际上执行的是前面目录的ls命令.即先查到谁先执行谁.