1. Linux文件目录架构

Linux的目录结构与win的目录有很大不同,首先,没有盘符的概念;然后Linux使用斜杠/标识目录,Linux首先建立一个根目录,然后将其他文件系统挂载到这个目录下。

Linux系统主要目录及内容:

目录 内容
/bin 构建最小系统所需要的命令
/boot 内核与启动文件
/dev 设备文件
/etc 系统软件的配置文件
/home 主目录
/lib 编译器库
/media 可移动介质安装点
/opt 应用安装包
/proc 进程的映像
/root root用户主目录
/sbin 和系统操作有关的命令
tmp 临时文件
/usr 非系统的程序和命令
/var 系统专用的数据和配置文件

路径:

  • 相对路径:凡是以当前工作目录或者其他以非斜线字符为起始字符的所有路径都为相对路径;
  • 绝对路径:必须从根目录/开始;

Linux文件系统中的每一个目录均包含两个特殊目录

  • . 代表当前目录
  • .. 代表父目录

2. 建立目录 mkdir

wangzhengchao@ubuntu:~$ ls
Desktop Documents Downloads examples.desktop Music Pictures Public Templates Videos
wangzhengchao@ubuntu:~$ mkdir test1 test2
wangzhengchao@ubuntu:~$ ls
Desktop Downloads Music Public test1 Videos
Documents examples.desktop Pictures Templates test2

使用绝对路径建立目录:

wangzhengchao@ubuntu:~$ ls
Desktop Downloads Music Public test1 Videos
Documents examples.desktop Pictures Templates test2
wangzhengchao@ubuntu:~$ mkdir /home/wangzhengchao/test1/hello
wangzhengchao@ubuntu:~$ ls test1/
hello

使用-p选项,建立一个完整的子目录结构:

wangzhengchao@ubuntu:~$ ls
Desktop Downloads Music Public test1 Videos
Documents examples.desktop Pictures Templates test2
wangzhengchao@ubuntu:~$ mkdir -p ~/test3/hello
wangzhengchao@ubuntu:~$ ls test3/
hello

3. 建立空文件 touch

wangzhengchao@ubuntu:~$ ls
Desktop Downloads Music Public test1 test3
Documents examples.desktop Pictures Templates test2 Videos
wangzhengchao@ubuntu:~$ touch test4
wangzhengchao@ubuntu:~$ ls
Desktop Downloads Music Public test1 test3 Videos
Documents examples.desktop Pictures Templates test2 test4

touch还可以更新一个文件到建立日期和时间:

wangzhengchao@ubuntu:~/test2$ ls -l
总用量
-rw-rw-r-- wangzhengchao wangzhengchao 11月 : hello
wangzhengchao@ubuntu:~/test2$ touch hello
wangzhengchao@ubuntu:~/test2$ ls -l
总用量
-rw-rw-r-- wangzhengchao wangzhengchao 11月 : hello

4. 移动和重命名 mv

移动文件:

wangzhengchao@ubuntu:~$ ls
Desktop Downloads Music Public test1 test3 Videos
Documents examples.desktop Pictures Templates test2 test4
wangzhengchao@ubuntu:~$ mv test4 test1/hello/
wangzhengchao@ubuntu:~$ ls
Desktop Downloads Music Public test1 test3
Documents examples.desktop Pictures Templates test2 Videos
wangzhengchao@ubuntu:~$ ls test1/hello/
test4

移动目录:

wangzhengchao@ubuntu:~$ ls
Desktop Downloads Music Public test1 test3
Documents examples.desktop Pictures Templates test2 Videos
wangzhengchao@ubuntu:~$ mv test3/ test1/
wangzhengchao@ubuntu:~$ ls
Desktop Downloads Music Public test1 Videos
Documents examples.desktop Pictures Templates test2
wangzhengchao@ubuntu:~$ ls test1
hello test3

如果直接使用mv指令移动文件,且目标目录有同名文件,则会直接替换,不提示任何信息,为此,我们可以使用-i 或者-b 选项, -i会提示是否覆盖;-b会把首先在目标目录到同名文件后加一个~,避免覆盖。

重命名;

wangzhengchao@ubuntu:~$ ls
Desktop Downloads Music Public test1 Videos
Documents examples.desktop Pictures Templates test2
wangzhengchao@ubuntu:~$ mv test2 test3
wangzhengchao@ubuntu:~$ ls
Desktop Downloads Music Public test1 Videos
Documents examples.desktop Pictures Templates test3

5. 复制文件和目录 cp

cp用法基本与mv一致,但对于自动跳过目录到情况,可以使用-r选项将子目录连同其中到文件一起复制到另一个目录下。

6. 删除目录与文件 rmdir / rm

删除目录之前,一定要检查该目录是不是空目录,rmdir只能删除空目录。rm用于删除文件,使用带有-r选项到rm指令,可以递归的删除目录下到所有文件和子目录,如下:

wangzhengchao@ubuntu:~$ ls
Desktop Documents Downloads examples.desktop Music Pictures Public Templates test1 Videos
wangzhengchao@ubuntu:~$ ls test1
hello test3
wangzhengchao@ubuntu:~$ rm -r test1/
wangzhengchao@ubuntu:~$ ls
Desktop Documents Downloads examples.desktop Music Pictures Public Templates Videos

使用rm指令时,一定要谨慎,最好使用带有-i选项的rm

7. 查看文件和目录的属性

Linux为3种人准备了权限:文件所有者(属主),文件属组用户(属组),其他人。注意:其他人不包含root用户!

用户对文件和目录享有三种权限:

r 可以打开并查看内容
w 拥有对文件到修改权限
x 执行 是否可执行,对目录和文件意义不同

对于目录而言,执行权限实际控制了用户是否可以进入该目录,读权限负责确定是否可以列出该目录到内容,写权限控制着可否在目录中创建,删除和重命名文件

文件权限与二进制,八进制的对应关系:

rwx
八进制 二进制 权限
0 000 ---
1 001 --x
2 010 -w-
3 011 -wx
7 100 r--
5 101 r-x
6 110 rw-
7 111 rwx

Linux中的7种文件类型:

文件类型 符号
普通文件 -
目录文件 d
字符设备文件 c
块设备文件 b
本地域套接口 s
有名管道 p
符号连接 l

------------------------------------------------------------------------------------------------------------------------------------

虚线之间内容于21:09:05 2018-11-8 补充

目录文件:

  • 是一种特殊文件,存储的内容不是普通意义上的数据,而是一系列文件名及其信息节点号(ls -i filename 可以查看文件信息节点号);
  • 目录文件与普通文件并无实质性差别,但是目录文件是由Linux系统直接管理的,用户只能查询,并不能直接修改目录文件,目录文件始终是由操作系统负责维护的。

链接文件:

  • 链接文件把多个文件名指向同一个文件,更新一个文件即可反映到其他文件;
  • 除了目录之外,非链接文件的链接计数只能是1;
  • 如果文件的信息节点相同,其引用的就是同一个信息节点;
  • 硬链接的唯一局限是链接的两个文件必须位于同一个物理文件系统;
  • 符号链接文件可以使用户跨越不同的物理文件系统建立链接文件,符号链接文件拥有自己的数据,具有文件名和信息节点;

管道文件:

  • 管道包括普通管道和管道文件
  • 普通管道是一种进程之间的通信机制,数据按照FIFO的方式处理;
  • 管道文件是一种特殊文件,管道文件拥有文件名和信息节点,但是不含有任何数据,管道文件一边缓存数据,一边供进程读取数据;

------------------------------------------------------------------------------------------------------------------------------------

以下代码查看文件login的属性:

 wangzhengchao@ubuntu:~$ ls -l /bin/login
-rwxr-xr-x root root 5月 /bin/login

第二行代码的第一个-代表login文件是一个普通文件(参见linux中到文件类型),紧接着的9位(rwxr-xr-x)代表权限码。对9位权限码可以拆解为如下3组(每3位一组)权限位: rwx(属主) r-x(属组)  r-x(其他)。即,对于属主拥有读写和执行权限,对于属组拥有读和执行权限(因为-代表没有对应的权限),对于其他人拥有读和执行权限。该9位权限码还可以用3位八进制数755表示(参见文件权限与二进制,八进制的对应关系)。

8. 修改文件所有权 chown

chown基本语法: chown [OPTION]... [OWNER] [:[GROUP]] FILE...

  • 上述指令将文件FILE的属主更改为OWNER,将属组更改为 GROUP
  • 如果只修改属主,可以忽略group
  • 如果只修改属组,可以忽略owner
wangzhengchao@ubuntu:~$ ls -l hello
-rw-rw-r-- wangzhengchao wangzhengchao 11月 : hello
wangzhengchao@ubuntu:~$ sudo chown king hello
wangzhengchao@ubuntu:~$ ls -l hello
-rw-rw-r-- king wangzhengchao 11月 : hello

chown还提供了-R选项,用于更改一个目录及其下所有文件的所有权限:

wangzhengchao@ubuntu:~$ ls -l test
总用量
-rw-rw-r-- wangzhengchao wangzhengchao 11月 : helloWorld
wangzhengchao@ubuntu:~$ sudo chown -R king test/
wangzhengchao@ubuntu:~$ ls -l test
总用量
-rw-rw-r-- king wangzhengchao 11月 : helloWorld
wangzhengchao@ubuntu:~$ ls -l

9. 修改文件权限 chmod

首先明确:只有文件的属主和root用户才能修改文件的权限

chmod用于改变文件的权限,使用 用户组+/-权限 的表达方式增加/删除相应的权限。其中:

  • 用户组:属主(u), 属组(g), 其他人(o),  所有人(a)
  • 权限:读(r), 写(w), 执行(x)

chmod u+x hello 表示文件hello对属主增加了执行属性;

chmod u-x hello 表示文件hello对属主删除了执行属性;

还可以使用 用户组=权限 或者 用户组1 = 用户组2 的方式修改权限:

chmod u=rw hello 表示文件hello对属主设置读写权限

chmod o=u hello 表示将其他人权限设置为和属主权限一样

根据上述文件权限与二进制,八进制的对应关系表(参见第7部分),我们还可以直接使用3位八进制数修改文件权限:

wangzhengchao@ubuntu:~$ ls -l hello
-------rwx wangzhengchao wangzhengchao 11月 : hello
wangzhengchao@ubuntu:~$ chmod hello
wangzhengchao@ubuntu:~$ ls -l hello
-rw-rw-r-- wangzhengchao wangzhengchao 11月 : hello

文件hellio原来的权限为 ------rwx,现在需要修改为 rw-rw-r-- 根据八进制对应表可以得到3位八进制权限数为664 , 因此可以使用 chmod hello 修改权限。

10. 输出重定向

当我们执行 date指令时,系统默认将内容打印到屏幕上,使用输出重定向可以置顶输出的位置,例如可以制定输出到文件里面。

wangzhengchao@ubuntu:~$ date
2018年 11月 05日 星期一 :: CST
wangzhengchao@ubuntu:~$ date > date_out
wangzhengchao@ubuntu:~$ cat date_out
2018年 11月 05日 星期一 :: CST

如果输出文件不存在,系统会自动创建;若文件存在,则原内容会被删除,写入新内容;为避免删除原内容,可以使用 >> 重定向

11. 管道 |

管道通过|,将一条命令的输出连接到一条命令的输入:

wangzhengchao@ubuntu:~$ ls
Desktop Downloads hello Pictures Templates Videos
Documents examples.desktop Music Public test 无标题文档
wangzhengchao@ubuntu:~$ ls | grep s
Desktop
Documents
Downloads
examples.desktop
Music
Pictures
Templates
test
Videos

上述代码执行查找包含字符s的文件名

Linux---文件目录管理的更多相关文章

  1. Linux文件目录管理

    Linux文件目录管理 文件的路径 路径: . 表示当此层目录 .. 表示上一层目录 - 代表前一个工作目录 ~ 代表"目前用户身份"所在的文件夹 ~account 代表accou ...

  2. 5. Linux文件目录管理和打包压缩与搜索命令

    1.touch:用于创建空白文件或设置文件的时间 举例:使用ls 命令查看一个文件的修改时间,然后修改这个文件,最后再通过touch命令把修改后的文件时间设置成修改之前的时间(很多黑客就是这样做的): ...

  3. Linux 文件目录管理的指令

    1.知识点:绝对路径:写法从/(根目录开始) /usr/share/doc 相对路径:不从/开始  如cd ../man 如果清楚文件夹内部情况,建议使用相对路径在文件夹之间跳转,而不用绝对路径,每次 ...

  4. linux文件目录管理命令

    1.touch命令 touch命令用于创建空白文件或设置文件的时间,格式为“touch [选项] [文件]”. touch test命令可以创建出一个名为test的空白文本文件  touch命令的参数 ...

  5. Linux 文件目录管理命令

    1.touch 用于设置空白文件或设置文件时间 touch命令参数及作用 参 数                                                             ...

  6. Linux目录管理

    Linux文件目录管理 1:目录管理 1)切换目录 # cd  [ 目录名称] 2)退到上一目录 # cd .. 2:创建目录 mkdir  [文件名称] mkdir -p  [文件名称] 递归创建目 ...

  7. 学习Linux下的文件目录管理

                    文件目录管理 一.认识Linux文件系统的架构 在Linux中是没有盘符这个概念的,即Linux中没有C盘和D盘的分盘.那么我们直接通过对目录的操作实现对磁盘的读写,因 ...

  8. linux软件包管理(上)

    1.二进制包管理(RPM,yum) 2.源代码包的安装 3.脚本安装(shell或java) 4.Debian系列的linux软件包管理简介 在下载rmp包的时候注意检查硬件平台是否正确,如果硬件平台 ...

  9. Linux文件目录结构详解

    整理自<鸟哥的私房菜> 对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于 ...

  10. Linux系列教程(十六)——Linux权限管理之ACL权限

    通过前面的两篇博客我们介绍了Linux系统的用户管理,Linux用户和用户组管理之相关配置文件 讲解了用户管理的相关配置文件,包括用户信息文件/etc/passwd,用户密码文件/etc/shadow ...

随机推荐

  1. [RK3288][Android6.0] 音频调试方法小结【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/70053135 Platform: ROCKCHIPOS: Android 6.0Kernel ...

  2. exynos 4412 时钟配置

    /** ****************************************************************************** * @author    Maox ...

  3. Java IO 输入输出流 详解 (一)***

    首先看个图: 这是Javaio 比较基本的一些处理流,除此之外我们还会提到一些比较深入的基于io的处理类,比如console类,SteamTokenzier,Externalizable接口,Seri ...

  4. 框架-Java:Spring Boot

    ylbtech-框架-Java:Spring Boot 1.返回顶部 1. Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该 ...

  5. Spark 二项逻辑回归__二分类

    package Spark_MLlib import org.apache.spark.ml.Pipeline import org.apache.spark.ml.classification.{B ...

  6. activity工作流表结构分析

    版权声明:本文为博主原创文章,未经博主允许不得转载. 1.结构设计 1.1.    逻辑结构设计 Activiti使用到的表都是ACT_开头的. ACT_RE_*: ’RE’表示repository( ...

  7. bzoj 3743: [Coci2015]Kamp【树形dp】

    两遍dfs一遍向下,一边向上,分别记录子树内人数a,当前点到所有点的距离b,最大值c和次大值d,最大值子树p 然后答案是2b-c #include<iostream> #include&l ...

  8. 基于ASP.Net Core开发一套通用后台框架记录-(数据库设计(权限模块))

    写在前面 本系列博客是本人在学习的过程中搭建学习的记录,如果对你有所帮助那再好不过.如果您有发现错误,请告知我,我会第一时间修改. 前期我不会公开源码,我想是一点点敲代码,不然复制.粘贴那就没意思了. ...

  9. 【洛谷4721】【模板】分治FFT(CDQ分治_NTT)

    题目: 洛谷 4721 分析: 我觉得这个 "分治 FFT " 不能算一种特殊的 FFT ,只是 CDQ 分治里套了个用 FFT (或 NTT)计算的过程,二者是并列关系而不是偏正 ...

  10. 递推DP UVA 1366 Martian Mining

    题目传送门 /* 题意:抽象一点就是给两个矩阵,重叠的(就是两者选择其一),两种铺路:从右到左和从下到上,中途不能转弯, 到达边界后把沿途路上的权值相加求和使最大 DP:这是道递推题,首先我题目看了老 ...