Linux 目录与文件管理
2017-03-24 本文已影响32人
zshanjun
目录与路径
目录的相关操作
. 代表此层目录
.. 代表上层目录
- 代表前一个工作目录
~ 代表目前用户身份所在的主文件夹
~account 代表account这个用户的主文件夹
cd 打开目录
pwd 显示当前目录
mkdir 新建一个目录
rmdir 删除一个空的目录
关于执行文件路径的变量:$PATH
使用echo $PATH
可以查看环境变量是有哪些,中间用:
分割
目录与文件管理
查看文件与目录:ls
ls [-aAdfFhilnrRSt] 目录名称
ls [--color={never,auto,always}] 目录名称
ls [--full-time] 目录名称
参数:
-a:列出全部的文件(常用)
-A:列出全部文件,但不包含.和..这两个目录
-d:仅列出目录本身,而不是列出目录内的文件数据
-f:直接列出结果,而不进行排序
-F根据文件、目录等信息给予附加数据结构,例如:*代表执行文件,/代表目录,=代表socket文件,|代表FIFO文件
-h:将文件容量以人类易读的方式列出来(常用)
-i:列出inode号码
-l:列出长数据串,包括文件的属性和权限等数据(常用)
-n:列出UID和GID,而非用户与用户组的mingc
-r:将数据反向排序输出
-R:连同子目录内容一块列出
-S:以文件容量大小排序,而是不是用文件名排序
-t:以时间排序
--color=never 不要依据文件特性给予颜色显示
--color=always 显示颜色
--color=auto 让系统自行依据设置来觉得是否显示颜色
--full-time 以完整时间模式输出
--time={atime,ctime} 输出访问时间或改变权限属性时间而非内容变更时间
复制、删除与移动:cp,rm,mv
cp复制文件或目录
cp [-adfilprsu] 源文件 目标文件
参数:
-a:相当于 -pdr 的意思(常用)
-d:若源文件为连接文件的属性,则复制连接文件属性而非文件本身
-f:为强制的意思
-i:若目标文件已经存在时,在覆盖时先询问(常用)
-l:进行硬连接的连接文件创建,而非复制文件本身
-p:连同文件的属性一起复制过去,而非使用默认属性
-r:递归持续复制,用于目录的复制行为(常用)
-s:复制成为软连接,即快捷方式文件
-u:若目标文件比源文件旧才更新目标文件
rm删除文件或目录
rm [-fir] 文件或目录
参数:
-f:强制,忽略不存在的的文件,不会出现警告信息
-i:互动模式,在删除前会询问用户是否操作
-r:递归删除(这是非常危险的参数)
mv移动文件与目录或更名
mv [-fiu] source destination
参数:
-f:强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i:若目标文件已经存在,则会询问
-u:若目标文件已经存在,且source比较新才会更新
文件内容查阅
- cat:从第一行开始显示文件内容
- tac:从最后一行开始显示
- nl:显示的时候,顺便输出行号
- more:一页一页的显示内容
- less:与more类似,它可以往前翻页
- head:只看头几行
- tail:只看结尾几行
- od:以二进制的方式读取文件内容
cat(concatenate)
cat [-AbEnTv]
参数:
-A:相当于-vET的整合参数,可列出一些特殊字符,而不是空白而已
-b:列出行号,仅针对非空白行做行号显示
-E:将结尾额断行字符$显示出来
-n:打印出行号,连空白行也会有行号
-T:将[Tab]按键以^T显示出来
-v:列出一些看不出来的特殊字符
more
一些按键:
空格键:代表向下翻一页
回车键:代表向下滚动一行
/word:向下搜索word
:f :立刻显示出文件名和当前显示的行数
q:离开
b:往回翻页
less
一些按键:
空格键:代表向下翻一页
回车键:代表向下滚动一行
/word:向下搜索word
?word:向上搜索word
n: 重复上一个搜索
N:反向重复上一个搜索
q:离开
head
head [-n number] 文件
如果number为负数,例如-100就表示后面的100不显示处理
tail
tail [-n number] 文件
如果tail -n +100 文件,则表示将文件从100行以后的都会显示出来
文件与目录的默认权限
文件默认权限:umask
root@iZ9460e7nt4Z:/# umask
0022
root@iZ9460e7nt4Z:/# umask -S
u=rwx,g=rx,o=rx
在默认权限的属性上,目录和文件是不一样的,默认情况下:
若用户创建的文件则默认没有执行的权限,即只有读和写;
若用户创建的文件夹则默认为拥有所有的权限
要注意的是,umask的分数是指该默认值需要减掉的权限
当用户新建文件时:(-rw-rw-rw-)-(-----w--w-)=>-rw-r--r--
当用户新建目录是:(drwxrwxrwx)-(d----w--w-)=>drwxr-xr-x
命令与文件的查询
脚本文件的查询:which
which [-a] command
参数:
-a:将所有有PATH目录中可以找到的命令均列出来,而不只是第一个被找到的命令
文件的查找
通常我们先使用whereis和locate来检查,如果找不到再使用find。因为whereis和locate是利用数据库来查找数据,所以相当快。
whereis(寻找特定文件)
locate
locate查找的数据是从已创建的数据库/var/lib/mlocate中查找的,所以相当快速。
根据操作系统的不同,数据库更新频率也不一样(CentOS 5.X每天一更),当然也可以使用updatedb
手动更新数据库
find
find [PATH] [option] [action]
参数:
1、与时间有关的参数:共有-atime, -ctime, -mtime
-mtime n:n天之前的“一天之内”被更改过的文件
-mtime +n:列出n天之前(不包含n天本身)被更改过的文件名
-mtime -n:列出n天之内(包含n天本身)被更改过的文件名
-newer file:file为一个存在的文件,列出file还要新的文件名
范例:
将过去系统上面24小时内有改动(mtime)的文件列出
find / -mtime 0
0代表目前的时间,所以,从现在开始到24小时之前
find / -mtime 3
表示3天前的24小时内
参数:
2、与用户或用户组名有关的参数
-uid n:n为数字,这个数字是用户的账号id,即UID,记录在/etc/passwd里面
-gid n:n为数字,这个数字是用户组名的id,即GID,记录在/etc/group里面
-user name:name为用户账号名称
-group name:name为用户组名
-nouser:寻找文件的所有者不存在/etc/passwd的文件
-nogroup:寻找文件的所有用户组不存在于/etc/group的文件
范例:
查找/home下面属于vbird的文件
find /home -user vbird
参数:
3、与文件权限及名称有关的参数:
-name filename:查找文件名为filename的文件
-size [+-] SIZE:查找比SIZE还要大(+)或小(-)的文件
-type TYPE:查找文件的类型为TYPE的,主要的类型有:一般正规文件(f)、设备文件(b,c)、目录(d)、连接文件(l)、socket(s)、FIFO(p)等
-perm mode:查找文件权限刚好等于mode的文件
-perm -mode:查找文件权限必须全部包好mode的文件
-perm mode:查找文件权限任一包含mode的文件