Linux目录管理全面掌握
路径符号
. |
当前目录 |
---|---|
.. |
上一层目录 |
- |
前一个目录 |
~ |
当前账户的主文件夹 |
~chai |
chai这个账户的主文件夹 |
目录处理命令
PS:使用Tab进行文件补齐,是一种好习惯,能够避免输错文件名。
- cd 切换目录
- pwd 显示当前所在的目录 pwd=print working directory
pwd #输出当前工作目录
pwd -P #输出当前的真实路径,而非连接路径
#例子:文件/var/aaa的实际路径是/home/chai/aaa
cd /var/aaa
pwd #显示/var/aaa
pwd -P #显示实际路径/home/chai/aaa
- mkdir 新建目录
mkdir [-mp] 目录
-m:手动设置目录的权限,而忽略目录默认的权限umask
mkdir -m 744 /dir
//如果没有-m这个参数,创建的目录会有默认的权限。
-p:直接将所需要的目录递归创建出来
mkdir -p /dir1/dir2/dir3
//递归创建目录会有风险,如果我打错了字,会把错误的目录创建出来
- rmdir 删除空的目录
PS:rmdir仅能删除空目录。
rmdir [-p] 目录
-p:将上层出现的目录全删了。但必须都得是空的。
环境变量PATH
当我们执行命令:ls -al的时候,系统会按照PATH设置的路径,去这些路径中寻找ls这个文件,并执行。 如果PATH路径中有多个ls文件,那么先找到的那个ls文件被执行。
//查看PATH
echo $PATH
PS:$后跟的是一个变量。
PS:PATH由很多路径组成,每个路径之间用:隔开。
PS:不同用户的PATH是不一样的。
//在PATH中添加路径/chai
PATH="$PATH":/chai
PS:当前目录.不要放在PATH中,因为当前目录不是固定的,这样会造成错误!
查看目录结构
ls [-aAdfFhilnrRSt] 目录
ls [--color={never,auto,always}] 目录
ls [--full-time] 目录
-a |
列出全部文件,包括.开头的隐藏文件 |
---|---|
-A |
列出全部文件,包括.开头的隐藏文件,但不包括.与..这两个目录 |
-d |
只列出目录,不列出文件 |
-f |
直接列出结果,而不进行排序 |
-h |
将文件大小用易读的方式显示 |
-l |
列出长数据串,包含属性等信息 |
-t |
按时间排序 |
-S |
按容量排序 |
-r |
将排序结果反向输出 |
-/-color=never |
不要根据文件特性给予颜色 |
-/-color=always |
给文件显示颜色 |
-/-color=auto |
让系统自己决定文件是否要现实颜色 |
-/-full-time |
以完整的时间输出 |
-/-time={atime,ctime} |
输出访问时间atime或权限改变时间ctime,而非修改时间mtime |
PS:在许多distributions中,用ll就能代替ls -l。
复制cp
cp命令不仅仅具有复制的功能,还具有创建连接文件(快捷方式)、对比两个文件的新旧然后更新、复制整个目录等等。
cp [options] 原文件 目标文件夹
cp [options] 原文件1 原文件2 原文件3 目标文件夹
-a |
就是pdr的意思(常用) |
---|---|
-d |
若原文件是连接文件,则只复制连接文件的属性,而不复制连接文件的内容 |
-f |
(force强复制)若目标文件已经存在,则将他删除后重新复制。 |
-i |
若目标文件已经存在,则覆盖时询问(常用) |
-p |
连同文件的属性一起复制,而非使用默认属性 |
-r |
递归复制,若原文件是个目录,那么这个参数会将原目录下所有内容都复制过去(常) |
-s |
复制后让目标文件成为连接文件(快捷方式) |
-u |
若原文件比目标文件新才将目标文件覆盖(用于更新) |
//将文件/var/chai复制到/usr中去,并更名为shixv
cp /var/chai /usr/shixv //使用新的文件名
PS:如果目标文件加了名字,就表示将目标文件更名;若目标文件只是一个路径,就表示仍然使用原来的文件名。
cp /var/chai /usr //仍然适用原来的文件名
默认的情况下,cp之后文件的权限和属性会发生改变,改变的内容包括:权限、用户组名、修改时间等; 如果要是得复制过后的文件和原文件保持完全一致,则加上属性-a即可;此时,所有的属性都保持高度一致。 但是,我们去复制了别人的数据后,希望这些数据都是我们自己的,我们应该能够对这些数据进行各种操作;因此我们需要在cp完后进行权限的修改;而这个权限的修改必须是由复制给你的那个人修改的。
PS:显示两个指定文件的详细信息 ls -l 文件1 文件2
PS:将多个文件cp到指定目录下 cp 文件1 文件2 指定目录
文件/目录的默认权限 和 隐藏权限
除了基本的rwx权限之外,Linux的ext2/ext3文件系统下,我们还可以设置系统隐藏属性,它可以用chattr来设置,用lsattr来查看。最重要的属性就是可以设置文件/目录为不可修改,这可以让文件所有者都不能进行修改,这对于安全性方面是非常重要的。
文件的默认权限umask
umask是指用户在新建文件/目录时候的默认权限。
查看umask的方法:
//方法一:直接输入umask,显示四个数字:0022
umask
0022 //第一位不要管,后面三位分别对应文件主、同组用户、其他用户在默认权限的基础上被剥夺的权限。
//PS:文件的默认权限是(rw-rw-rw);目录的默认权限是(rwxrwxrwx)
上述默认权限是022,所以新建文件时,默认权限是:(rw-rw-rw)-(—-w–w-)=(rw-r–r–);新建目录时,默认权限是:(rwxrwxrwx)-(—-w–w-)=(rwxr-xr-x)
- 警告:Android P(禁用非官方API)
- 使用JavaScript访问XML数据
- 详解Android UI线程卡顿收集
- 浅谈差分约束问题
- JVM活学活用——类加载机制
- WebAssembly详解及其使用案例
- 30分钟精通快应用
- BZOJ2440: [中山市选2011]完全平方数(莫比乌斯+容斥原理)
- Dapper扩展之~~~Dapper.Contrib
- JVM活学活用——GC算法 垃圾收集器
- BZOJ1101: [POI2007]Zap(莫比乌斯反演)
- freeRTOS事件组学习
- 洛谷P2522 [HAOI2011]Problem b(莫比乌斯反演)
- JVM活学活用——优化springboot
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- kubernetes使用securityContext和sysctl
- 浅谈分词算法基于字的分词方法(HMM)
- 优雅的重启服务
- Go defer 会有性能损耗,尽量不要用?
- 带入gRPC:分布式链路追踪 gRPC + Opentracing + Zipkin
- 聊聊Golang逃逸分析
- 结构型设计模式:适配器模式和门面模式
- 结构型设计模式:代理模式
- kubernete中的原子调度单位:pod
- mybatis-generator在命令行及IEAD中的使用
- mybatis-generator在命令行及IDEA中的使用
- 70-STM32+ESP8266+AIR202基本控制篇-移植使用-移植单片机MQTT底层包到自己的工程项目
- springboot研究:springboot自带监控actuator
- springboot研究:springboot使用swagger自动构建api
- numpy/pandas瞎搞系列(一):OLS,WLS的numpy实现