二、文件目录相关命令
cd[路径] 改变工作目录,可以为相对路径,也可是绝对路径.
该命令将当前目录改变至指定目录.若没有指定路径,则回到用户主目录.为了改变到指定目录,用户必须拥有对指定目录的执行和读权限.
使用"cd-"可以回到前次工作目录.
"./"代表当前目录,"../"代表上级目录.
cd /:回到顶层目录
cd:回到当前用户主目录
ls [options] [文件]
列出目录内容,其中"文件"为指定要查看的文件,默认查看当前目录下的所有文件.
常见参数:
-l 一行只显示一个文件或目录名
-a 显示所有文件和目录
-A 显示所有除行目录和上层目录的所有目录
-c 已更改时间排序,显示文件和目录
-h 用"K","M","G"显示文件和目录大小
-i 显示文件和目录的inode编号
-d 将目录和其它文件一样列出,而不是列出文件内容
-f 不排序目录,按他们在磁盘上的顺序列出
-R递归列举出目录下的所有子目录的文件
-X以文件的扩展名排序,便于找出同一类的文件
使用-l列出文件显示格式说明:
文件类型与权限 连接数 文件属主 文件属组 文件大小 修改时间 文件名
file [options] 文件名
用来确定一个文件的具体类型
-z 如果一个文件被压缩,则试图获取原始文件(未被压缩)的类型
mkdir [options] 路径
创建一个目录
常见参数
-m 对新建目录设置读写权限,也可以用chmod命令设置
-p 若所建目录的上层目录没有建立,则自动建立上层目录
cat [options] file1 file2
连接并显示指定的一个和多个文件的有关信息
常见参数
-n 由第一行开始对所有的输出的行数编号
-b 类似于-n,只是对空白行不进行编号
-E 在每一行结束时显示$
同时该命令可以依次显示多个文件内容
head/tail [options] 文件名
默认显示文件开头/结尾10行内容
-cN 显示前/后N个字节的内容
-nN 显示前/后N行的内容
cp、mv、rm
(1)作用
①cp:将给出的文件或目录复制到另一个文件或目录中(如果目标文件是一个已存在的文件或目录,则会自动覆盖、原文件).
②mv:将文件或目录改名或将文件由一个目录移入另一个目录中.
③rm:删除一个目录中的一个或多个文件或目录.
(2)格式
①cp: cp [options] 源文件或目录 目标文件或目录
②mv: mv [options] 源文件或目录 目标文件或目录
③rm: rm [options] 文件或目录
(3)常见参数
①cp主要选项参数
-a 保留链接和文件属性,并复制其子目录,其作用等于dpr选项的组合
-d 拷贝是保留链接
-f 删除已经存在的文件而不提示
-i 在覆盖目标文件之前给出提示要求用户确认.回答y时目标文件将被覆盖,而且是交互是拷贝
-p 此时cp除复制原文件以外,还将把其修改时间和文件权限也复制到新文件中
-r 若给出的源文件是一目录名,此时cp将递归复制此目录下的所有子目录和文件.此时目标文件必须为一个路径名
②mv主要选项参数
-i 若mv操作将导致对已经存在的目标文件覆盖,此时系统询问是否重写,并要求用户回答y或n
-f 禁止交互操作.在mv操作将要覆盖已有文件时不给出任何提示,在指定次选项后,i将不起作用
③rm主要选项参数
-i 进行交互式删除
-f 忽略不存在的文件,但不会给出提示
-r 指示rm将参数中列出的全部目录字目录递归删除
scp
在主机与远程服务器之间拷贝文件
rename
作用:重命名文件
格式:rename from to file
该命令还有3个参数:
from:源字符
to:目标字符
file:要改的文件
例:
//把所有文件的后缀由rm改为rmvb
rename.rm.rmvb *
//把所有文件名中的大写改为小写
rename 'tr/A-Z/a-z' *
//将taq (old).tar.gz更名为taq (new).tar.gz
rename '(old)' '(new)' 'taq (old).tar.gz'
mv命令同样用该改名功能:
格式:mv oldfile newfile
但是与rename区别在于rename可以同时更改多个文件,而mv每次只能更改一个文件.
rmdir
删除目录,如果一个目录以及子目录都为空,可以使用-p选项将这些目录删除,但它只限制目录为空的时候。
可以使用rm -rf可用来删除整个目录
chown和chgrp(拥有root权限)
①chown:改变文件所有者和组别
chown [选项] 文件所有者[所有者组名]文件,其中的文件所有者为修改后的文件所有者
②chgrp:改变文件的组所有权
chgrp [选项] 文件所有组 文件,其中的文件所有组为改变后的文件拥有者
(2)常见参数
chown和chgrp常见参数意义相同,如下:
-c,-changes 详尽的描述每个file实际改变了那些所有权
-f 不显示错误信息
chown gbyukg taq 将taq的文件夹的所有者变更为gbyukg用户
chmod 改变文件访问权限
(1)格式:
①符号标记:
其中的符号标记可以指定为多个,也就是说,可以指定多个用户级别的权限,但他们中间要用逗号分开表示,若没有显示指出则表示不做变更
chmod [-cfvR] [--help] [--version] mode file...
mode:权限设定字符,格式如下:[ugoa][[+-=][rwxX][,...]]
u=>user,g=>group,o=>other,a=>All表示三者全部
+表示增加权限,-表示取消权限,,=表示唯一设定权限
chmod ugo+r file1.txt
chmod a+r file1.txt
②八进制数:
chmod abc file
其中abc各为一个数字,分别表示user,group和other的权限
r=4,w=2,x=1
若要rwx属性则4+2+1=7
若要r-x属性则4+1=5
chmod 777 file 效果和 chmod a=wrx 一样
(2)选项参数:
-c 若该文件确实已经更改,才显示其更改动作
-f 若该文件无权限更改,也不显示错误信息
-v 显示权限变更的详细信息
-R 对目前目录下的所有档案与子目录进行相同的权限变更
sort按顺序显示内容
sort [options] 文件名1 文件名2
sort工具是将文件内容排序后显示出来,但并不改变原文件。如果存在多个文件名,则将这些文件合并到一起显示
grep 在指定的文件中搜索特定的内容,并将含有这些内容的行标准输出
grep [options] 要搜索的内容 [文件及路径]
缺省的"文件及路径"表示当前目录下搜索,而默认情况下,'grep'只是搜索当前目录,若此目录下存在多个子目录,可以使用-r明确要求搜索子目录,如:grep hello taq -r将会搜索taq目录中所有文件,包括子目录.或者使用-d skip忽略子目录的查询,如:grep hello taq -d skip.
grep常用参数
-Num 同时显示匹配上下文的Num行(Num为整数)
-c 只输出匹配行的计数
-i 不区分大小写
-h 查询文件时不显示文件名
-l 查询文件时只显示名,而不显示匹配行
-n 显示匹配行及行号
-s 不显示不存在或无匹配文本的错误信息
-v 显示出不包括匹配行的所有行
有一点要注意,您必需提供一个文件过滤方式(搜索全部文件的话用 *)。如果您忘了,‘grep’会一直等着,直到该程序被中断。如果您遇到了这样的情况,按 <CTRL c> ,然后再试。
grep hello -r *
如果预料到有许多输出,您可以通过 管道 将其转到‘less’上阅读
grep hello taq -r | less
同时grep搜索支持正则表达式
find[路径][选项][描述]
在指定目录中搜索文件,它的使用权限是所有用户
其中的路径为文件的搜索路径,系统开始沿着此目录树向下查找文件.它是一个路径列表,互相用空格分离.若缺省路径,则默认为当前路径.
直接输入find:
.
./yun
./yun/hello.php
描述是匹配表达式,是find命令接受的表达式,如下:
-name filename #查找名为filename的文件
-perm #按执行权限来查找
-user username #按文件属主来查找
-group groupname #按组来查找
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查GIN: 0px">
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-print #输出搜索结果,并打印
find命令可以使用混合查找方式,描述之间用-and连接,如:find -size +500c -and -mtime +1查找大于500字节并且一天之内修改过的文件。
locate
ln [options] 目标文件 建立链接的目录
为某一个文件在另一个位置建立符号链接。当需要在不同目录中用到相同的文件时,linux允许用户不用在每个需求的目录中都建立一个相同的文件,而只需将其它目录下的文件用ln命令链接既可,这样就不必重复占用磁盘空间。
常用参数:
-s 建立软链接,无此参数则为硬连接
ln命令会保持每一处链接文件的同步性,也就是说,无论更改了那一处,其它文件都会发生相同的变化。