touch:-m,-c,-anode
touch -a #仅改变atime和ctime touch -m #仅改变mtime和ctime touch -t #[[CC]YY]MMDDhhmm[.ss]指定atime和mitme的时间戳 touch -c #若是文件不存在,则不予建立
查看shell:cat /etc/shells
查看当前shell:echo $SHELLshell
root用户的cp是别名,使用了cp -i命令
不加选项的cp是会改变文件属性的,好比时间属性,好比属主属组属性,用法:bash
cp /PATH/TO/FILE /DIR #直接复制 cp /PATH/TO/FILE1 /PATH/TO/FILE2 DEST #多个文件复制到一个文件夹 cp -t DEST /PATH/TO/FILE1... #将目的和源位置呼唤 cp -r /PATH/TO/DIR /DIR/ #将前一个目录复制到后一个目录 cp -r /PATH/OT/DIR /DIR/DIR1 #若是DIR1不存在会将DIR更名为DIR1,若是存在会进入目录在DIR1下创建DIR目录复制
源\目标 | 不存在 | 存在且为文件 | 存在且为目录 |
---|---|---|---|
一个文件 | 新建DEST,并将SRC的内容填充至DEST中 | 将SRC中的内容覆盖至DEST中 | 在DEST下新建与源文件同名的文件,并将SRC中内容填充至新文件中 |
多个文件 | 提示错误 | 提示错误 | 在DEST下新建与源文件同名的文件,并将源文件内容复制到目录中 |
目录(须使用-r选项) | 建立指定的DEST同名目录,复制SRC目录中全部文件至DEST下 | 提示错误 | 在DEST下新建与源目录同名的目录,并将SRC中内容复制至新目录中 |
-i #覆盖前提示 -n #不覆盖 -R #等于-r递归复制目录及内部全部内容 -d #--no-dereference --preserv=links 不复制原文件,只复制连接名 -p #等同--preserv=mode,ownership,timestmp -preserv=ownership #做用与保留属性,保留属组属主 mode:权限 ownership:属组属主 timestamp:时间戳 links:连接 xattr:文件扩展属性 context: all:全部 -f #等同--force若是文件存在且不能被打开,将文件删除后尝试复制 -a #至关于-dR --preserv=all既能够保留属性,还能够保留连接和整个目录 -u #等同--update只复制源比目标更新文件或目标不存在的文件 -b #目标存在,覆盖钱先备份,形式为FILENAME~,能治保留一份 --backup=numbered #目标存在,覆盖前先备份加数字后缀 -v #--verbose显示复制详细信息
mv:移动文件或者更改文件名称指针
mv SRC DEST mv SRC... DEST mv -t DEST SRC... #经常使用选项 -i: #交互式 -f: #强制 -b: #目标存在,覆盖先前备份
在分区内移动文件时很快,由于并无真正复制,而是将索引更改了一下而已,删除也是同样,将索引删除code
rm:删除文件或文件夹blog
-i #交互式 -r #递归删除文件 -f #不询问也不报错
rm -rf命令太过危险,在重要环境中应该使用别名,将rm改成mv移动至其余文件夹中rm='mv -t /tmp/trash'递归
有特殊文件名的状况下使用绝对路径或者相对路径删除索引
删除大文件时,正在使用的文件不会释放空间,必要时可使用>将文件清楚并删除,就会释放空间(文件描述符被占用)ip
rename:批量修改文件名称it
rename txt txt.bak f* #将f开头的全部txt文件改成txt.bak为后缀的名称
tree:列出目录的梳妆结构
-d:只显示目录
-L:指定显示的层级数目
-P pattern:只显示由指定wild-card 通配符匹配到的路径
mkdir:创建文件夹
-p:没有路径上的文件夹时创建文件夹
-v:显示详细信息
-m:建立目录时直接指定权限
rmdir:删除空目录
-p:删除掉目标目录后若是父目录为空,删除,依次类推
-v:显示详细信息
df:查看磁盘使用信息
-h:使用k,M,G的方式显示大小
-t:指定查看某个文件系统的分区
-i:查看分区节点编号的使用状况
Inode:节点编号,为文件的惟一标识
节点编号也是文件的元数据之一
元数据:metadata
存放了节点编号,权限大小,文件位置。属组属主信息等
stat命令能够查看节点编号
ll -i也能够查看节点编号
df -i查看inode号使用状况,因为在inode号用光后也会提示设备没有空间,因此当空间还有,却提示没有剩余空间,这就是节点编号用完
图中左边是元数据信息,而其中的指针信息为标识文件存放位置的地方,假设一个数据块存放为4k大小,那么直接指针能够直接指向数据块,ext4系列中有12个直接指针,12x4k为48k大小,因此直接指针存放的文件最多为48k大小,大于48k时须要双重间接指针,一级指针指的是指针数据块,二级指针指的才是文件数据,依次类推,不一样的文件系统细节不一样
一个目录是目录下的文件名和inode号之间的映射
通常inode表会占用文件系统磁盘空间的1%
cp命令执行过程:分配一个空闲的inode号,在inode表中生成新条目,在目录中建立一个目录项,将名称与inode编号关联拷贝数据生成新的文件
rm命令执行过程:连接数递减,释放的inode号能够被重用,把数据块放在空闲列表中,删除目录项,数据实际上不会被立刻删除,但当另外一个文件使用数据块时将被覆盖
ln FILE1 FILE2:建立的文件inode号是彻底同样的,因此指的是同一个文件,这属于硬连接
ln命令执行过程:在目录中建立一个目录项,将名称与inode号关联
连接数:有几个硬连接,当硬连接为1时删除文件将会删除文件,不然只会删除一个目录项
ll能够查看连接数
因为硬连接是同一个文件,因此不能跨分区
且硬连接不能够连接文件夹,文件夹的硬连接数是能够增加的,多一个子文件夹就能够增长一个链接数,由于子目录的..目录就是此目录
ln -s就是创建软链接,经过一个文件指向另外一个文件
ln -s f1.txt f1.txt.link #建立了f1.txt的软连接,软链接是根据文件名的,且软链接能够跨设备,也能够连接文件夹。软链接创捷的时候的相对路径有些奇特,软链接的相对路径必须相对于软链接的路径,例如: ln -s ../f1.txt f11.txt.link #软连接不识别inode号,只根据文件名判断,因此当原文件被删除时,软连接不会被删除,在创建与原文件名同名的文件,软链接便可回复使用 #删除时,rm -rf /data/dir11/ 会删除dir1下的内容,而rm -rf /data/dir11 会删除dir11这个软链接 dir1 dir11 -> dir1
软硬连接区别:
shared:清理数据
可使用随机数或者1,0从新覆盖数据区域,能够应付通常的数据清理场景
file:识别文件类型
file FILE -b: #只显示结果不显示文件名 -f: #列出文件列表中的文件名的文件类型,将文件目录放进一个文件中 -F: #输出指定分隔符,默认是: -L: #查看对应软链接类型
magic number:文件类型的标识
readelf 查看二进制头便可看到magic
/dev/zero不能随意cp若是要复制-a保留属性