LINUX文件操作命令

body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;} th{border: 1px solid gray; padding: 4px; background-color: #DDD;} td{border: 1px solid gray; padding: 4px;} tr:nth-child(2n){background-color: #f8f8f8;}

文件的硬链接:相当于一个文件的两个副本,指向同一数据存储区
特点:
     两个文件,长度相等,总长度不变
     删除其中一个文件,另一个仍然存在
     修改其中一个文件,另一个也修改
文件的符号链接:
相当于一个文件的快捷方式
特点:
    仅保存一个指针,长度小于原文件
    删除符号链接,不影响原文件
    删除原文件,符号链接即没有意义
ln 命令– link
功能:产生链接文件
用法:ln –s 来源文件 目标文件
加-s参数:symbolic link
不加-s参数:hard link
范例:
ln –s /bin/less  /usr/bin/less  //第一种方式,链接到其他目录
ln myfile  mylinkfile       //第二种方式,链接到其他文件
LINUX文件操作命令
//红色表示这个链接失效了
LINUX文件操作命令
whereis – where is file ?
作用:查找文件或目录位置
说明:whereis并不进行磁盘级的查找,只是在 $PATH 所设定的路径中去查找
范例:whereis ls

LINUX文件操作命令

//ln 第二种方式
LINUX文件操作命令

LINUX文件操作命令


改变目录或文件的权限

chmod
ls –l 长格式列出文件或目录的基本信息如下:
文件类型与权限 链接数 文件所有者 文件属组 文件大小 最近修改的时间 名字
对于权限,有第一组表示文件所有者的权限第二组表示同组用户的权限第三组表示其他用户的权限。每一组的三个字符分别表示对文件的读、写和执行权限。可以通过chmod来修改权限。
1. 文字设定法
chmod [who][+|-|=][mode] 文件名  //修改指定文件名中who的权限增加/去除/赋值为mode
参数:
操作对象who可是下述字母中的任一个或者它们的组合:
u 表示“用户(user)”,即文件或目录的所有者。
g 表示“同组(group)用户”,即与文件所有者有相同组ID的所有用户。
o 表示“其他(others)用户”。
a 表示“所有(all)用户”。它是系统默认值。即chmod +x 1.c表示所有人都有可执行的权限。
操作符号可以是:
+ 添加某个权限。
- 取消某个权限。
= 赋予给定权限并取消其他所有权限(如果有的话)。
设置 mode 所表示的权限可用下述字母的任意组合(当组合的时候,who不能少):
r 可读
w 可写
x 可执行
文件名:以空格分开的要改变权限的文件列表,支持通配符。
在一个命令行中可给出多个权限方式,其间用逗号隔开。
例如:chmod g+r,o+r example [chmod go+r example]使同组和其他用户对文件 example 有读权限
2. 数字设定法
0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。
例如:chmod go+r example 等价于 chmod 044 example


文件查找

find
命令:find 起始目录 查找条件 操作
功能:在指定目录结构中搜索文价,并执行指定的操作。
该命令的查找条件可以是一个逻辑运算符 not、and、or 组成的复合条件。
and :逻辑与,在命令中用 -a 表示,表示只有当所给的条件都满足时,查找条件才满足。
例如在 “/home/user”目录下查找名为 0718 类型是一个目录的文件。则使用
find  /home/user –name  0718  –a  -type  d
or :逻辑或,在命令中用 -o 表示,表示只要所给的条有一个满足,查找条件就满足。例如在“/home/user”目录下查找名字为main.cc 或名字为 main.c的文件。则使用
find  /home/user  -name main.cc  -o  -name main.c
not :逻辑非,在命令中用 表示查找不满足所给条件的文件。例如在“/home/user“下查找名字不是main.c的文件,则使用
find  /home/user  !  –name main.cc 
 根据名称和文件属性查找:
-name  ’字串’ 查找文件名匹配所给字串的所有文件,字串内可用通配符 *、?、[ ]
eg: find *.txt //查找当前目录下所有以txt结尾的文件。
[] 表示 通配括号里面的任意一个字符
? 表示  通配任意的单个字符
find [12].txt   // [1-9] //匹配多个1.txt~9.txt
find 1.tx?

-gid n 查找属于ID号为n的用户组的所有文件。
-uid n 查找属于ID号为n的用户的所有文件。
-group ’字串’ 查找属于用户组名为所给字串的所有的文件。
-user  ’字串’ 查找属于用户名为所给字串的所有的文件。
-empty 查找大小为0的目录或文件。
-perm 权限 查找具有指定权限的文件和目录,权限的表示可以如711,644。
-size n[bckw] 查找指定文件大小的文件,n后面的字符表示单位,缺省为b,代表512字节的块
-type x 查找类型为x的文件,x为下列字符之一:
 b 块设备文件
 c 字符设备文件
 d 目录文件
 p 命名管道(FIFO)
 f 普通文件
 l 符号链接文件(symbolic links)
 s socket文件
根据时间查找:
-amin  n 查找n分钟以前被访问过的所有文件。(+表示n分钟之前,-表示n分钟之内,+号和-号都不能省略)
-cmin  n 查找n分钟以前文件状态被修改过的所有文件。
-mmin  n 查找n分钟以前文件内容被修改过的所有文件。
-atime n 查找n天以前被访问过的所有文件。
-ctime n 查找n天以前文件状态被修改过的所有文件。
-mtime n 查找n天以前文件内容被修改过的所有文件。
可执行的操作:
-exec 命令名称 {}  :对符合条件的文件执行所给的Linux 命令,而不询问用户是否需要执行该命令。{}表示命令的参数即为所找到的文件;命令的末尾必须以“ \;”结束。
例如,在“/home/user“目录下查找名为main.c文件并显示这些文件的详细信息,则使用
find /home/user –name main.c -exec ls –l {} \;
LINUX文件操作命令



-ok 命令名称 {}  :对符合条件的文件执行所给的Linux 命令,与exec不同的是,它会询问用户是否需要执行该命令。
find -name 1.txt -ok cat {} \;
LINUX文件操作命令
-ok 命令名称 {}  :对符合条件的文件执行所给的Linux 命令,与exec不同的是,它会询问用户是否需要执行该命令。
find -name 1.txt -ok cat {} \;
LINUX文件操作命令
find /home/luke -name main.c | xargs ls -l
  find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。 
  在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高; 
  而使用xargs命令则只有一个进程。另外,在使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。
LINUX文件操作命令


搜索文件内容grep:
命令:grep [选项][查找模式][文件名1,文件名2,…]
功能:grep过滤器查找指定字符模式的文件,并显示含有此模式的所有行。被寻找的模式称为正则表达式。
常用的一些正则表达式:
^ :以什么开头 ,例如 ls –l | grep ^d 显示当前目录下的所有子目录的详细信息。
$ :以什么结尾 。例如 ls –l | grep c$ 显示当前目录下以c结尾的文件。
常用的参数:
-E  每个模式作为一个扩展的正则表达式对待。等价于 egrep,使用最新的正则表达式
-F  每个模式作为固定的字符串对待
-c  只显示匹配行的数量。
-i  比较式不区分大小写。
-n  在输出前加上匹配串所在的行号。
LINUX文件操作命令
LINUX文件操作命令// 搜索文件1.txt中的单词the

wc(Word Count)
命令格式: wc [选项]文件...
命令功能: 统计指定文件中的字节数、字数、行数,并将统计结果显示输出。该命令统计指定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的总统计数。
命令参数:
-c  统计字节数。
-l  统计行数。
-m  统计字符数。这个标志不能与 -c 标志一起使用。
-w  统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
-L  打印最长行的长度。
LINUX文件操作命令


umask
指文件(0666)或目录(0777)创建时在全部权限中要去掉的一些权限,普通用户缺省时umask的值为002,超级用户为022。所以默认创建一文件以后,普通用户缺省的权限为664,超级用户为644;创建一目录以后,普通用户缺省的权限为775超级用户755;umask查看当前缺省掩码,umask 001设置当前掩码为001
LINUX文件操作命令// test刚好是775
LINUX文件操作命令

LINUX文件操作命令// test刚好是666
LINUX文件操作命令


上一篇:MySQL学习笔记十六:锁机制


下一篇:JavaScript权威设计--CSS(简要学习笔记十六)