在开始理解Linux文件管理和目录类命令之前,有必要先说一下,关于操作系统在计算机中都做了哪些工作。

0、操作系统的工作

1、文件管理,增删改查

2、目录管理

3、进程管理

4、软件安装

5、运行程序

6、网络管理

7、设备管理

本次笔记介绍的是文件管理和目录管理类命令。说起文件和目录,不禁让人思考到一个问题:

问题1:文件是目录吗?

归纳1:首先我们知道:

目录:是存放文件的路径。即是根文件系统rootfs上的非叶子节点。

文件:是根文件系统上的叶子节点。

根据Linux操作系统的“一切皆文件的思想”,就暗示着我们:目录就是文件。

问题2:所以,在同一个目录下,文件和目录是不能同名的。

那么,在不同目录下,文件和目录可以同名吗?

为什么在windows下,文件和文件夹(目录)可以同名吗?

归纳2:

1、文件类命令

1.1、创建文件:

方法一:使用#touch命令创建文件

#touch(用于change file timestamp,改变文件时间戳)

问题3:touch命令不是用于改变文件时间戳的命令吗?为什么可以用来创建文件?

归纳3:

首先,我们必须了解什么是时间戳?

时间戳=访问时间+修改时间+改变时间;

访问时间=最近一次访问文件的时间

修改时间=最近一次修改文件内容的时间

改变时间=最近一次修改文件属性的时间

所以当我们尝试着去touch一个不存在的文件,即我们尝试着去修改一个不存在文件的时间戳时,系统就会新创建一个空文件,并以当前的创建时间来修改文件的访问时间和修改时间。

问题4:为什么只能修改文件的访问时间和修改时间,而不能修改文件的改变时间?

归纳4:道理很简单,当我们知道了时间戳同样也是文件的属性信息时,这就难不倒我们了。

当访问时间和修改时间都变化了,改变时间还有理由不变吗?!

也就是说,我们通过修改"访问时间"和"修改时间",间接的去修改了“改变时间”。

那么,修改访问时间这个功能还有必要存在吗?!

这也符合Linux一贯的原则"能简单的,就一定不复杂"!

       

方法二:使用文本编辑器创建文件

问题5:什么是文本编辑器?Word是文本编辑器吗?

答:Word不是文本编辑器,Linux下的文本编辑器nano:该编辑器中,~表示ctrl,-表示空格

问题6:什么是文本?

答:ASCII

问题7:什么是ASCII?

答:想想如何用二进制数去表示128个字符?需要几个二进制位?那么可以理解ASCII其实就是将一些不同的字符与二进制位建立固定的关联关系

问题8:什么是UNICODE:

答:如0000 1001 0000 1001:上,标准:GB18030,GB2312,Unicode,GBK

问题9:汉字是如何在显示器上,显示的?字体?

1、2 文件的删除:

# rm = rm -i   #\rm = rm

即当我们想要使用一个命令的本身,而不是它的别名命令时,可以再命令前面加\

-i 交互式

-f 强制性

-r 删除一个目录时,递归删除这个目录下的所有文件

自杀型操作:rm -rf /(通常是不小心造成的

1.3、复制文件:cp命令 (复制档案或目录)

1、# cp [-adfilprsu] 来源档(source) 目的档(destination)

2、# cp [options] source1 source2 source3 .... directory

参数:

-a(archive):相当于 -pdr 的意思;不改变源的所有属性,用于归档复制,常用于备份;= --backup

-d(no-dereference):若来源文件为链接文件的属性(link file),则复制连结文件属性而非档案本身;即如果源是链接,则复制链接

-f(force):为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制;

-i(interactive):若目的檔(destination)已经存在时,在覆盖时会先询问是否真的动作!

-l(link)(link files instead of copying) :进行硬式连结 (hard link) 的连结档建立,而非复制档案本身;即如果源是链接,则复制链接所指向的文件;

-P(no-dereference) :保持链接:如果源是链接,则复制链接

-p (不改变源的属主和属组):连同档案的属性一起复制过去,而非使用预设属性;

什么是预设属性:本来谁复制的,文件的属主和属组就是谁;

-r(recursive):递归持续复制,用于目录的复制行为;

-s(symbolic) :复制成为符号连结文件 (symbolic link),亦即『快捷方式』档案;

-u(update)   :若 destination 比 source 旧才更新 destination ;或者是destination file is missing

问题

问题1:能不能把一个文件复制成另一个文件,一个文件复制成多个文件,多个文件复制成一个文件。即Src:Dest = 1:1,1:n,n:1,n:n

归纳1:目标destination只有一个,可以是文件也可以是目录。因此只存在Src:Dest=1:1和n:1这两种情况,但多个源的情况下(即Src:Dest=n:1时),目标(Dest)只能是目录,否则报错。

问题2:什么是符号链接?

答:相当于一个快捷方式,本身不存在,只是指向另一个文件的路径。

如果源是链接,复制的不是链接而是链接指向的那个文件

问题3:cp命令,默认不能复制目录;那么如何实现复制目录

答:# cp -r(recursive递归):

递归持续复制,用于目录的复制行为;

# cp -r /etc/init.d /tmp/passwd (目录到文件?)该命令能否执行?

指令解读:Src为目录,Dest为文件;Src:Dest=1:1

在没有r参数的情况下,是不允许执行的。

该指令执行

范例

一个源

范例1: # cp /etc/passwd /tmp,什么意思?

答:Src为文件,Dest为目录;

指令解读:

将/etc路径下的文件passwd,复制到目标目录/tmp下,复制后的文件名仍为passwd。

范例2: # cp /etc/passwd /tmp/test,什么意思?

答:Src为文件,Dest为目录or文件;

指令解读:

1、当Dest(test)为文件时:

则将文件passwd复制到目录/tmp下:

1.1 如果test不存在,则复制文件以test为文件名保存在/tmp目录下;

1.2 如果test已经存在,则询问用户是否用新复制的文件覆盖原来的test文件;

2、当Dest(test)为目录时:

则将文件passwd,复制到目录/tmp下,复制后的文件名仍为passwd。

多个源

范例3:# cp /etc/passwd /etc/issue /etc/inittab /tmp/abc,什么意思?

答:Src:Dest=N:1;Src为文件,Dest为文件or目录

指令解读:

1、当Dest(abc)为文件时:

问题来了,多个文件可以存放在一个文件中吗?

答案是不行,当用户试图将多个文件存放于一个文件中,系统会报错提示目标abc不是一个目录。

2、当Dest(abc)为目录时:

则将源文件(passwd,issue,inittab)复制到目标目录/tmp/abc下,并以原文件名保存文件。


2、目录管理

#ls

#cd

#pwd

创建空目录:mkdir,最后一个节点,才是需要创建的目录,之前的都是路径

选项: -p(p=parent 父):当需要创建的目标目录的父目录不存在时,则创建父目 录,以实现递归创建

-v(显示创建的详细信息)

如何用一个命令实现创建/mnt/test/x/m  /mnt/test/y

答:mkdir -pv /mnt/test/{x/m,y}

{}:是bash shell的一个高级特性,叫命令行展开也叫花括号展开。

~USERNAME:叫波浪线展开

如何在/mnt/test2下创建:a_b,a_c,d_b,d_c

答:mkdir -pv /mnt/test2/{a,d}_{b,c}或

mkdir -pv /mnt/test2/{a_b,a_c,d_b,d_c}

删除空目录:rmdir

选项: -p(p=parent 父):只有一线单传才能,删除父目录,每个节点只有孩子

tree(查看目录树),



转载于:https://blog.51cto.com/xxaqwqm/1557051

Linux学习笔记之文件管理和目录管理类命令相关推荐

  1. linux学习笔记(6)磁盘管理

    linux学习笔记(6)磁盘管理 文章目录   6.1磁盘命名   6.2分区方式   6.3磁盘管理     6.3.1基本分区     6.3.2逻辑卷LVM     6.3.3交换分区管理Swa ...

  2. Linux学习笔记(一)|目录结构

    Linux学习笔记(一) #一.Linux的目录结构 Linux采用层级式的树状目录结构,根目录为"/",在此目录下创建其他目录. /lib 系统开机所需要最基本的动态链接共享库 ...

  3. Linux 的文件和目录管理类命令

    文件和目录管理类的命令 目录: cd ~[username] ~:指定用户的家目录 cd -:回到上一次所在的目录 路径: 相对路径中: .:当前目录 ..:父目录 pwd: print workin ...

  4. Python学习笔记_文件读写,目录遍历类封装

    文件读写和目录遍历类的封装. mylib.py 1 # -*- coding:utf-8 -*- 2 3 __author__ = 'huanghuan' 4 5 import os 6 from o ...

  5. 史上最牛最强的linux学习笔记 7.用户和用户组管理

    写在最前面:前面留下来的几章内容,今天补一下. 昨天在安装虚拟机后,不知道如何创建用户.修改用户密码(还有不知道如何将ip地址配置到文件里,现在都没敢重启虚拟机)!说白了,不是不知道命令,只是一直报错 ...

  6. linux学习笔记-用户和群组管理文件

    1.文件框架 学习linux用户管理时经常看到UID和GID.UID是指User ID,即用户ID:GID是指Group ID即用户组ID.UID和账号对应尽量不要修改.我们知道创建一个新的用户指令是 ...

  7. Linux学习笔记 第三课 目录结构及简单命令

    一.目录结构 二.简单命令(ls,cd,pwd,which,alias,pstree,tree) 三.环境变量PATH应用 四.快捷键 五.扩展知识   (stty  ,ping 及 /var/log ...

  8. Linux学习笔记 --网络配置及进程管理

    目录 网络配置 ☆☆☆☆指定服务器 IP 设置主机名和 hosts 映射 主机名解析过程分析(Hosts.DNS) ☆☆☆进程管理 ps 父子进程 终止进程 kill.killall ☆☆☆服务管理 ...

  9. Linux学习笔记-RH135之Apache的管理及优化

    Apache的管理及优化 1.Apache的作用 2.Apache的启用 3.Apache的基本配置 4.Apache的访问控制 (1)基于ip的黑名单 (2)基于ip的白名单 (3)基于用户的访问控 ...

最新文章

  1. .NET开发人员值得关注的七个开源项目
  2. mysql 数据库异常大_Mysql连接数据库异常汇总【必收藏】
  3. sample solution
  4. C++友元函数神奇的friend
  5. java gb13000 ucs2_采用GB 13000的UCS-2进行存储的文件怎么转换
  6. 《天天数学》连载06:一月六日
  7. 安卓linux终端 计算,5种在Linux终端中进行算术运算的方法
  8. 常用排序算法-java实现(插入,快排)
  9. 使用awk进行文本处理
  10. Windows10操作系统搭建C语言开发环境
  11. solidworks装配体改为柔性_SolidWorks零件改名后与工程图关联教程
  12. 正态性检验ks和sw区别_非参数检验思路总结,清晰理解就靠它了!
  13. 可视化学习第三周-对比型和分布型数据
  14. 三丁基-巯基膦烷「tBuBrettPhos Pd(allyl)」OTf),1798782-17-8
  15. 机器人控制器编程整理汇总-辞旧迎新-
  16. 3. css-loader
  17. 从服务器分发性能,高性能P2P流媒体内容分发服务器的设计与实现
  18. GoogleMap的简单用法
  19. 阿里巴巴、蚂蚁金服 《H5、前端招聘》
  20. bing必应壁纸下载器

热门文章

  1. iOS 储存用户信息设置封装 直接调用即可(部分是代码片段)
  2. Swoft 2 Beta 发布,基于 Swoole 的云原生协程框架
  3. 一看就懂!【英雄联盟锐雯】与 Python 详解设计模式之门面模式
  4. Python链接MySQL
  5. mysql数据库密码忘记恢复脚本
  6. LVS原理详解(3种工作方式8种调度算法)--老男孩
  7. SpringMVC之请求参数的获取方式
  8. python笔记day4
  9. 如何成为一家真正发挥大数据作用的 “数据驱动型公司”?
  10. centos 6.8 源码安装 erlang/otp 19.0.2