Linux学习之三——操作档案与目录


一. 目录文档操作指令
 
1. pwd 显示目前所在目录
 
如果加上-P 的选项,则取得正确的目录名称,而不是以链接文件的路径来显示。 例如CentOS下,刚刚好/var/mail是/var/spool/mail的连结档
 
 
 
2. cd 变更工作路径
 
可以使用绝对路径和相对路径。
 
另外还有如下几种特别的路径代表方式:
 
1) . 代表此层目录
 
2) .. 代表上一层目录
 
3) - 代表前一个工作目录
 
4) ~ 代表『目前用户身份』所在的家目录
 
5) ~account 代表 account 这个用户的家目录(account是个账号名称)
 
 
 
3. ls 列出目录下的目录和档案
 
选项与参数:
 
-a :全部档案,包括隐藏档案一起列出
 
-A :全部档案,包括隐藏档,但不包括 . 与 .. 这两个目录
 
-d :仅列出目录
 
-f :直接列出结果,而不进行排序 (默认会以档名排序!)
 
-F :根据档案、目录等信息,给予附加数据结构,例如: *:代表可执行文件; /:代表目弽; =:代表 socket 档案; |:代表 FIFO 档案;
 
-h :将档案容量以人类较易读的方式(例如 GB, KB 等等)列出;
 
-i :列出 inode 号码;
 
-l :列表输出
 
-n :列出 UID 与 GID 而非使用者与群组的名称 
 
-r :将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小;
 
-R :连同子目录内容一起列出来;
 
-S :以档案容量大小排序;
 
-t :依时间排序。
 
--color=never :不要依据档案特性给予颜色显示;
 
--color=always :显示颜色
 
--color=auto :让系统自行依据设定来判断是否给予颜色
 
--full-time :以完整时间模式 (包括年、月、日、时、分) 输出
 
--time={atime,ctime} :输出 access 时间或改变权限属性时间,而非内容变更时间。
 
 
 
4. mkdir 建立新目录
 
选项和参数:
 
-m :配置文件夹权限,权限用三位0到7之间的数字组成。
 
-p :直接建立多层目录,如: mkdir -p test1/test2/test3
 
 
5. rmdir 删除空目录
 
选项和参数:
 
-p: 直接删除多层空目录,如: rmdir -p test1/test2/test3
 
 
 
6. cp 复制档案或目录
 
用法
 
1) cp 选项 源文件 目标文件
 
2) cp 选项 source1 source2 source3 .... directory
 
选项与参数:
 
-a :相当于 -pdr 的意思;
 
-d :若源文件为链接文件,则复制链接文件而非档案本身,默认复制链接文件时会将链接到的源文件复制过来;
 
-f :为强制复制,若目标档案已经存在无法复制,则移除后再尝试一次;
 
-i :若目标文件已经存在,在覆盖时会先询问动作的进, CentOS7默认询问
 
-l :进行硬式连结(hard link)的连结档建立,而非复制档案本身;
 
-p :连同档案的属性一起复制过去,而非使用默认属性(备份常用);
 
-r :递归复制,用于目录复制;
 
-s :复制成为符号链接文件 (symbolic link快捷方式);
 
-u :若 destination 比 source 旧才更新 destination。
 
 
 
7. rm (移除档案或目录)
 
可删除非空目录,删除时可使用通配符,例如b*代表b打头的所有文件.
 
删除-打头的档案,因为-会被误解为选项,如rm -aaa,
 
可以改为rm ./-aaa,或者rm -- -aaa
 
选项与参数:
 
-f :就是 force 的意思,忽略不存在的档案,不会出现警告讯息;
 
-i :互动模式,在删除前会询问使用者是否动作。
 
-r :递归删除
 
 
 
8. mv (移动档案与目录,或更名)
 
用法
 
1) mv 选项 source destination
 
2) mv 选项 source1 source2 source3 .... directory
 
-f :force 强制的意思,如果目标档案已经存在,不会询问而直接覆盖;
 
-i :互动模式,询问是否覆盖
 
-u :若目标档案已经存在,且 source 比较新,才会更新 (update)
 
 
 
9. basename 取得路径的文件名
 
 
 
10. dirname 取得路径的目录名
 
 
 
11. cat 由第一行开始显示档案内容
 
选项与参数:
 
-A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
 
-b :列出行号,空白行不标行号!
 
-n :列出行号,连同空白行也会有行号
 
-E :将结尾的断行字符 $ 显示出来;
 
-T :将 [tab] 按键以 ^I 显示;
 
-v :列出一些看不出来的特殊字符
 
 
12. tac 从最后一行开始倒着显示
 
 
13. nl 显示的时候,输出行号
 
选项与参数:
 
-b :指定行号指定的方式,主要有两种:
-b a :表示空行也同样列出行号(类似 cat -n);
 
-b t :表示空行不列出行号(默认);
 
-n :列出行号的表示方法,主要有三种:
 
-n ln :行号在屏幕的最左方显示;
 
-n rn :行号在自己字段的最右方显示,且不加 0 ;
 
-n rz :行号在自己字段的最右方显示,且加 0 ;
 
-w :行号字段占用的位数。
 
 
14. more 用于浏览大文件,一页一页的显示档案内容
 
在用该命令开始浏览时可用下面的按键进行互动:
 
1) 空格键 (space):代表向下翻一页;
2) Enter :代表向下翻一行;
3) /字符串 :代表向下搜寻『字符串』这个关键词, CentOS7下不好用
4) :f :立刻显示出文件名以及目前显示的行数;
5) q :代表立刻离开 more ,丌再显示该档案内容。
6) b 或 [ctrl]-b :代表往回翻页,不过只对档案有用,对管线无用。
 
 
15. less 与 more 类似,但是功能更强大好用!
 
在用该命令开始浏览时可用下面的按键进行互动:
 
1) 空格键 :向下翻一页;
2) [pagedown]:向下翻一页;
3) [pageup] :向上翻一页;
4) /字符串 :向下搜寻『字符串』的功能;
5) ?字符串 :向上搜寻『字符串』的功能;
6) n :重复前一个搜寻 (与 / 或 ? 有关!)
7) N :反向重复前一个搜寻 (与 / 或 ? 有关!)
8) q :离开 less 这个程序;
 
 
16. head 只看头几行
 
选项与参数:
 
-n :后面接数字,代表显示几行的意思
 
 
17. tail 只看尾巴几行
 
选项与参数:
 
-n :后面接数字,代表显示几行的意忠
 
-f :表示持续侦测档案,当档案有数据写入时就立刻显示到屏幕上,直到按下[ctrl]-c结束tail的侦测
 
 
 
18. od 以二进制的方式读取档案内容!
 
 选项与参数:
 
-t :后面可以接各种『类型 (TYPE)』的输出,例如:
 
  a :利用默认的字符输出;
 
  c :使用 ASCII 字符输出
 
  d[size] :利用十进制(decimal)输出数据,每个整数占用 size bytes ;
 
  f[size] :利用浮点数(floating)输出数据,每个数占用 size bytes ;
 
  o[size] :利用八进制(octal)输出数据,每个整数占用 size bytes ;
 
  x[size] :利用十六进制(hexadecimal)输出数据,每个整数占用 size bytes ;
 
 
 
19. touch 修改档案时间
 
选项与参数:
 
-a :仅修订 access time;
 
-c :仅修改档案的时间,若该档案不存在则不建立新档案;
 
-d :后面可以接修订的日期而不用目前的日期,也可以使用 --date="日期或时间"
 
-m :仅修改 mtime ;
 
-t :后面可以接修订的时间而不用目前的时间,格式为[YYMMDDhhmm]
 
 
 
 
 
二、目录和文档的搜寻
 
1. which 寻找指令文件位置,只找PATH参数定义的位置。
 
which [-a] command
 
选项或参数:
 
-a :列出所有指令,默认只列第一个被找到的指令位置。
 
 
 
2. whereis 用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s),利用数据库搜
 
whereis [-bmsu] 档案或目录名
 
选项与参数:
 
-b :只找 binary 格式的档案
 
-m :只找在说明文件 manual 路径下的档案
 
-s :只找 source 来源档案
 
 
 
 
 
3. locate 根据档案的部分名称(路径部分包含也算)来搜寻,利用数据库搜,一般可能一天更新一次数据库,如果等不及可以直接用updatedb来更新数据库。
 
locate [-ir] keyword
 
选项与参数:
 
-i :忽略大小写的差异;
 
-r :后面可接正规表示法的显示方式
 
 
 
4. find 在文件系统中查找文件
 
 find [PATH] [option] [action]
 
选项与参数:
 
1) 与时间有关的选项:共有 -atime, -ctime 与 -mtime ,以 -mtime 说明
 
 -mtime n :在第n天前(仅n本身)被更过内容的档案;
 
 -mtime +n :列出在n天前(不含 n 天本身)被更改过内容的档案档名;
 
 -mtime -n :列出在 n 天内(含 n 天本身)被更改过内容的档案档名。
 
 -newer file :file 为一个存在的档案,列出比 file 还要新的档案档名
 
 
 
2) 与使用者或组名有关的参数:
 
-uid n :n 为数字,这个数字是用户的UID
 
-gid n :n 为数字,这个数字是组名的 GID
 
-user name :name 为使用者账号名称
 
-group name:name 为组名
 
-nouser :寻找档案的拥有者不存在于 /etc/passwd 中的人!
 
-nogroup :寻找档案的拥有群组不存在于 /etc/group 的档案! 
自行安装软件时可能存在没有档案拥有者的档案。
 
 
 
3)与档案权限及名称有关的参数:
 
-name filename:搜寻文件名为 filename 的档案;
 
-size [+-]SIZE:搜寻比 SIZE 还要大(+)或小(-)的档案。这个 SIZE 癿规格有: c: 代表 byte, k: 代表 1024bytes。
 
-type TYPE :搜寻档案的类型为 TYPE 的,类型主要有:一般正规档案 (f), 装置档案 (b, c), 目录 (d), 连结档 (l), socket (s), 及 FIFO (p) 等属性。
 
-perm mode :搜寻档案权限『刚好等于』 mode 的档案,这个 mode 为类似 chmod 的属性值
 
-perm -mode :搜寻档案权限『必须要全部囊括 mode 的权限』的档案,比如, 我们要搜寻 -rwxr--r-- ,即0744 的档案,使用 -perm -0744, 当一个档案的权限为 -rwsr-xr-x ,亦即 4755 时,也会被列出来, 因为 -rwsr-xr-x 的属性已经囊括了 -rwxr--r-- 的属性了。
 
-perm +mode :搜寻档案权限『包含任一 mode 的权限』的档案,
 
 
 
4) 额外可进行的动作:
 
-exec command :command 为其他指令,用来处理搜寻到的结果。
 
-print :将结果打印到屏幕上,这个动作是预设动作!

相关内容