标签:文件管理
文件系统
文件和目录被组织成一个单根倒置树结构
文件系统从根目录下开始,用“/” 表示
根文件系统(rootfs) :rootfilesystem
名称是大小写敏感
以. 开头的文件为隐藏文件
路径分隔的 /
文件有两类数据:
元数据:metadata
数据:data
文件系统分层结构:LSB Linux Standard Base
FHS:(FilesystemHierarchy Standard)
包括路径在内文件名称最长4095 个字节,用/分隔的路径不能
超过255 个字节。
蓝色--> 目录
绿色--> 可执行文件
红色--> 压缩文件
浅蓝色--> 链接文件
灰色--> 其他文件
除了斜杠和NUL,所有字符都有效。但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们。
标准Linux 文件系统(如ext4),文件名称大小写敏感。例如:MAIL,Mail,mail,mAiL
注视:Windows的Fat32文件系统是大小写不敏感的,所以跟系统没用关系,跟文件系统有关系。
/boot
引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub) 都存放于此目录
/bin 供所有用户使用的基本命令;不能关联到独立分区,OS 启动即会用到的程序
/sbin 管理类的基本命令;不能关联到独立分区,OS启动即会用到的程序
/lib 启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
/lib64 专用于x86_64 系统上的辅助共享库文件存放位置
/etc 配置文件目录
/home/ USERNAME 普通用户家目录
/root 管理员的家目录
/media 便携式移动设备挂载点
/mnt 临时文件系统挂载点
/dev 设备文件及特殊文件存储位置
b: block device 随机访问
c: character device 线性访问
/opt 第三方应用程序的安装位置
/srv 系统上运行的服务用到的数据
/tmp 临时文件存储位置
/usr (universalshared,read-only data)
bin 保证系统拥有完整功能而提供的应用程序
sbin
lib 32 位使用
lib64 只存在64 位系统
include C 程序的头文件(header files)
share 结构化独立的数据,例如doc,man等
local 第三方应用程序的安装位置
bin,sbin,lib,lib64,etc,share
/var(variable data files)
cache 应用程序缓存数据目录
lib 应用程序状态信息数据
local 专用于为/usr/local下的应用程序存储可变数据
lock 锁文件
log 日志目录及文件
opt 专用于为/opt 下的应用程序存储可变数据
run 运行中的进程相关数据;通常用于存储进程pid文件
spool 应用程序数据池
tmp 保存系统两次重启之间产生的临时数据
/proc 用于输出内核与进程信息相关的虚拟文件系统
/sys 用于输出当前系统上硬件设备相关信息虚拟文件系统
/selinux(security enhancedLinux)selinux 相关的安全策略等信息的存储位置
/sys 和 /proc是虚拟目录,文件大小为0,但是内容很多
du –sh /sys
du –sh /proc
/sys/class/scsi_host/host2/scan可以发现磁盘
虚拟机主文件.vmdk结尾文件,增加一个硬盘,这时系统不能识别新加的硬盘,
执行echo “- - -” > /sys/calss/scsi_host/host2/scan让系统读取新的磁盘信息
二进制程序 /bin
/sbin
/usr/bin
/usr/sbin,
/usr/local/bin
/usr/local/sbin
库文件 /lib
/lib64
/usr/lib
/usr/lib64,
/usr/local/lib
/usr/local/lib64
配置文件 /etc
/etc/DIRECTORY
/usr/local/etc
帮助文件 /usr/share/man
/usr/share/doc
/usr/local/share/man
/usr/local/share/doc
- 普通文件
d 目录文件
b 块设备 (真实存在,随机访问的)
c 字符设备 (虚拟的,只能顺序访问)
l 符号链接文件
p 管道文件pipe
s 套接字文件socket
每个shell 和系统进程都有一个当前的工作目录CWD:current work directory
显示当前shell CWD的绝对路径,pwd:printing working directory
pwd:打印当前工作路径
cd到链接目录里,当前路径是链接目录还是被链接目录?
[root@localhost ~]# ll -d /bin
lrwxrwxrwx. 1 root root 7 Jul 21 11:23 /bin-> usr/bin
pwd显示链接目录
[root@localhost ~]# cd /bin
[root@localhost bin]# pwd
/bin
pwd加-P参数显示被链接的物理目录
[root@localhost bin]# pwd -P
/usr/bin
echo $PWD:执行pwd命令,实际上是读取$PWD这个变量
绝对路径
以正斜杠开始
完整的文件的位置路径
可用于任何想指定一个文件名的时候
相对路径名
不以斜线开始
指定相对当前的工作目录位置
可以作为一个简短的形式指定一个文件名
脚本编程尽量使用相对路径,因为环境可能不一样,如果用绝对路径,脚本换个环境可能执行出错。
cd改变目录
绝对路径:cd/home/joshua/work
相对路径:cdproject/docs
列出当前目录的内容或指定目录
用法:
ls [options] [files_or_dirs]
Example:
ls -a 包含隐藏文件
ls -l 显示额外的信息
ls -R 目录递归通过
ls -d 目录和符号链接信息
ls -1 文件分行显示
ls -S 按从大到小排序
ls -u 配合-t 选项,显示并按atime 从新到旧排序
ls -U 不排序按目录存放顺序显示
stat
文件:metadata,data
三个时间戳:
Access 访问时间,atime,读取文件内容,触发修改访问时间
Modify 修改时间,mtime,改变文件内容(数据),触发改变修改时间
Change 改变时间,ctime,文件元数据发生变化,触发修改改变时间
* 匹配零个或多个字符
? 匹配任何单个字符
~ 当前用户家目录
~username 用户家目录
~+ 当前工作目录
~- 前一个工作目录
[0-9] 匹配某一个数字范围
[a-z] 匹配从a开始,按照a A b B…z的顺序的单个字符
[A-Z] 匹配从A开始,按照A b B…z Z的顺序的单个字符
[wxc] 匹配wxs列表中的任何的一个字符
[^wxc] 匹配列表中的所有字符以外的字符
预定义的字符类:#man 7 glob
[:digit:] 任意数字,相当于0-9
[:lower:] 任意小写字母
[:upper:] 任意大写字母
[:alpha:] 任意大小写字母
[:alnum:] 任意数字或字母
[:space:] 空格
[:punct:] 标点符号
touch [OPTION]... FILE...
-a 变,仅改变 atime
-m 变,仅改变 mtime
-t STAMP:[[CC]YY]MMDDhhmm[.ss]
-c 如果文件不存在,则不予创建
>> 文件名:也可以创建文件,不会修改已存在的文件的任何数据
touch 文件名:创建空文件,存在不会修改内容,修改访问时间
cp命令:复制文件和目录
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
cp SRC DEST
SRC 是文件:
如果目标不存在:
新建DEST,并将SRC 中内容填充至DEST中
如果目标存在:
如果DEST 是文件:将SRC 中的内容覆盖至DEST中基于安全,建议为cp 命令使用-i 选项
如果DEST 是目录:在DEST 下新建与原文件同名的文
件,并将SRC 中内容填充至新文件中
cp SRC... DEST
SRC... :多个文件
DEST 必须存在,且为目录,其它情形均会出错;
cp SRC DEST
SRC 是目录:此时使用选项:-r
如果DEST 不存在:则创建指定目录,复制SRC 目录中所有文件至DEST 中;
如果DEST 存在:
如果DEST 是文件:报错
如果DEST是目录:会把SRC目录拷贝到DEST目录下
cp常用参数:
-i 交互式
-r, -R 递归复制目录及内部的所有内容;
-a 归档,相当于-dR--preserv=all (在复制的时候,尽量保留源数据的属性)
-d --no-dereference--preserv=links 不复制原文件,只复制链接名
--preserv[=ATTR_LIST]
mode 权限
ownership 属主属组
timestamp 时间戳
links 链接数
xattr
context 内容
all
-p 等同--preserv=mode,ownership,timestamp
-v --verbose 显示操作的详细过程
-f --force
显示当前shell 进程所有可用的命令别名
#alias
定义别名NAME ,其相当于执行命令VALUE
#aliasNAME=‘VALUE‘
在命令行中定义的别名,仅对当前shell 进程有效
如果想永久有效,要定义在配置文件中
仅对当前用户:~/.bashrc
对所有用户有效:/etc/bashrc
编辑配置给出的新配置不会立即生效;
bash 进程重新读取配置文件:
source/path/to/config_file
./path/to/config_file
撤消别名:unalias
unalias [-a]name [name ...]
如果别名同原命令同名,如果要执行原命令,可使用
\COMMAND
’ COMMAND’
/PATH/COMMAND:外部命令
移动和重命名文件
mv [OPTION]...[-T] SOURCE DEST
mv [OPTION]...SOURCE... DIRECTORY
mv [OPTION]...-t DIRECTORY SOURCE...
常用选项:
-i 交互式
-f 强制
同目录等价于改名字
root中的mv是mv –i
普通用户家目录中mv 普通用户文件到 root文件,会提示
rm [OPTION]... FILE...
常用选项:
-i: 交互式
-f: 强制删除
-r: 递归
--no-preserve-root
安全释放空间的方法:
“> xxx” 创建空文件,如果文件存在,则把文件内容清除
本文出自 “Alan” 博客,请务必保留此出处http://songzz2016.blog.51cto.com/8713945/1833171
标签:文件管理
原文地址:http://songzz2016.blog.51cto.com/8713945/1833171