linux杂记(七)linux档案与目录管理指令
2024-10-11 20:38:36
1.目录的相关操作:cd,pwd,mkdir,rmdir
路径(PATH):
- 绝对路径:路径的写法【一定由根目录/写起】,例如/usr/share/doc这个目录
- 相对路径:路径的写法【不是由/写起】,例如由/usr/share/doc要到/usr/share/man底下时,可以写成:[cd ../man]这就是相对路径的写法。相对路径指的是【相对于目前工作目录的路径】
. | 代表此层目录 |
.. | 代表上一层目录 |
- | 代表前一个工作目录 |
~ | 代表【目前使用者身份】所在的home目录 |
~account | 代表account这个使用者的home目录 |
cd(变换目录change directory)
[root@linux ~]# cd [相对路径或绝对路径]
pwd(显示当前所在的目录print working directory)
[root@linux ~]# pwd [-P] 参数: -P :显示出确实的路径,而非使用连结(link)路径
mkdir(建立新目录make directory)
[root@linux ~]# mkdir [-mp] 目录名称 参数: -m :设定档案的权限,直接设定,不需要看预设权限(umask) -p :帮助你直接将所需要的目录递归建立起来
rmdir(删除【空】的目录remove directory)
[root@linux ~]# rmdir [-p] 目录名称 参数; -p :连同上层【空的】目录也一起删除
2.档案与目录管理
2.1档案与目录的检视:ls
[root@linux ~]# ls [-aAdfFhilRS] 目录名称 [root@linux ~]# ls [--color={none,auto,always}] 目录名称 [root@linux ~]# ls [--full-time] 目录名称 参数: -a :全部档案,连同隐藏档一起列出来 -A :全部档案,连同隐藏档,但不包括.与..这两个目录,一起列出来 -d :仅列出目录本身,而不是列出目录内的档案数据 -f :直接列出结果,而不进行排序(ls 预设会以档名排序) -F :根据档案、目录等信息,给予附加数据结构,例如: *:代表可执行档;/:代表目录;=:代表socket档案;|:代表FIFO档案; -h :将档案容量以人类较易读的方式(例如 GB、KB等等)列出来 -i :列出inode位置,而非列出档案属性 -l :长数据串行出,包含档案的属性等等数据 -n :列出UID与GID而非使用者与群组的名称(UID与GID会在账号管理提到) -r :将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小 -R :连同子目录内容一起列出来 -S :以档案容量大小排序 -t :依时间排序 --color=never :不要依据档案特性给予颜色显示 --color=always :显示颜色 --color=auto :让系统自行依据设定来判断是否给予颜色 --fulll-time :以完整时间模式(包含年、月、日、时、分)输出 --time={atime,ctime} :输出access时间或改变权限属性时间(ctime)而非内容变更时间(modification time)
2.2复制、移动与删除:cp,rm,mv
[root@linux ~]# cp [-adfilprsu] 来源档(source) 目的档(destination) 参数: -a :相当于 -pdr的意思 -d :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身 -f :为强制(force)的意思,若有重复或其它疑问时,不会询问使用者,而强制复制 -i :若目的档(destination)已经存在时,在覆盖时会先询问是否真的动作 -l :进行硬式连结(hard link)的连结档建立,而非复制档案本身 -p :连同档案的属性一起复制过去,而非使用预设属性 -r :递归持续复制,用于目录的复制行为 -s :复制成为符号连结文件(symbolic link),即【快捷方式】档案 -u :若destination比source旧才更新destination
[root@linux ~]# rm [-fir] 档案或目录 参数: -f :就是force的意思,强制移除 -i :互动模式,在删除前会询问使用者是否动作 -r :递归删除
[root@linux ~]# mv [-fiu] source destination 参数; -f :force强制的意思,强制直接移动而不询问 -i :若目标档案(destination)已经存在时,就会询问是否覆盖 -u :若目标档案已经存在,且source比较新,就会更新(update)
3.档案内容查阅
3.1直接检视档案内容:cat,tac,nl
- cat (concatenate)
[root@linux ~]# cat [-AEnTv] 参数: -A :相当于 -vET 的整合参数,可列出一些特殊字符 -E :将结尾的断行字符 $ 显示出来; -n :打印出行号; -T :将 [tab] 按键以 ^I 显示出来; -v :列出一些看不出来的特殊字符
- tac (反向列示)
- nl (添加行号打印)
[root@linux ~]# nl [-bnw] 档案 参数: -b:指定行号指定的方式,主要有两种: -b a :表示不论是否为空行,也同样列出行号; -b t :如果有空行,空的那一行不要列出行号; -n:列出行号表示的方法,主要有三种: -n ln :行号在屏幕的最左方显示; -n rn :行号在自己字段的最右方显示,且不加 ; -n rz :行号在自己字段的最右方显示,且加 ; -w:行号字段的占用的位数。
3.2可翻页检视:more,less
- more (一页一页翻动)
[root@linux ~]# more /etc/man.config # # Generated automatically from man.conf.in by the # configure script. # # .5p # .......中间省略....... --More--(%) <== 重点在这一行
重点在最后一行,最后一行会显示出目前显示的百分比, 而且还可以在最后一行输入一些有用的指令!在 more 这个程序的运作过程中,你有几个按键可以按的:
空格键 (space):代表向下翻一页;
Enter :代表向下翻『一行』;
/字符串:代表在这个显示的内容当中,向下搜寻『字符串』;
:f :立刻显示出文件名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该档案内容。
- less (一页一页翻动)
在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件。
除此之外,在 less 里头可以拥有更多的『搜寻』功能喔!不止可以向下搜寻,也可以向上搜寻。基本上,可以输入的指令有:
空格键 :向下翻动一页
[pagedown]:向下翻动一页
[pageup] :向上翻动一页
/字符串 :向下搜寻『字符串』的功能
?字符串 :向上搜寻『字符串』的功能
n :重复前一个搜寻 (与 / 或 ? 有关!)
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
q :离开 less 这个程序
3.3资料撷取:head,tail
- head (取出前面几行)
[root@linux ~]# head [-n number] 档案 参数: -n:后面接数字,代表显示几行的意思
- tail (取出后面几行)
[root@linux ~]# tail [-n number] 档案 参数: -n:后面接数字,代表显示几行的意思
3.4非纯文字文件:od
[root@linux ~]# od [-t TYPE] 档案 参数: -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 ;
3.5修改档案时间与建置新档:touch
我们在 ls 这个指令的介绍时,有稍微提到每个档案在 linux 底下都会记录三个主要的变动时间, 那么三个时间是哪三个呢?
- modification time (mtime):当该档案的『内容数据』变更时,就会更新这个时间! 内容数据指的是档案的内容,而不是档案的属性
- status time (ctime):当该档案的『状态 (status)』改变时,就会更新这个时间,举例来说, 像是权限与属性被更改了,都会更新这个时间
- access time (atime):当『该档案的内容被取用』时,就会更新这个读取时间 (access)。 举例来说,我们使用 cat 去读取 ~/.bashrc ,就会更新 atime 了
档案的时间是很重要的,因为,如果档案的时间误判的话,可能会造成某些程序无法顺利的运作。那么万一我发现了一个档案来自未来(例如 GMT 时间),那该如何让该档案的时间变成『现在』的时刻呢? 很简单啊!就用『touch』这个指令即可!
[root@linux ~]# touch [-acdmt] 档案 参数: -a :仅修订 access time; -c :仅修改时间,而不建立档案; -d :后面可以接日期,也可以使用 --date="日期或时间" -m :仅修改 mtime ; -t :后面可以接时间,格式为[YYMMDDhhmm]
4.档案与目录的预设权限与隐藏权限
4.1档案预设权限:umask
基本上, umask 就是指定 『目前使用者在建立档案或目录时候的属性默认值』。
[root@linux ~]# umask [root@linux ~]# umask -S u=rwx,g=rx,o=rx
4.2档案隐藏属性:chattr,lsattr
- chattr (设定档案隐藏属性)
[root@linux ~]# chattr [+-=][ASacdistu] 档案或目录名称 参数: + :增加某一个特殊参数,其它原本存在参数则不动。 - :移除某一个特殊参数,其它原本存在参数则不动。 = :设定一定,且仅有后面接的参数 A :当设定了 A 这个属性时,这个档案(或目录)的存取时间 atime (access) S :这个功能有点类似 sync 的功能!就是会将数据同步写入磁盘当中!将不可被修改,可避免例如手提式计算机容易有磁盘 I/O 错误的情况发生!可以有效的避免数据流失! a:当设定 a 之后,这个档案将只能增加数据,而不能删除,只有 root才能设定这个属性。 c:这个属性设定之后,将会自动的将此档案『压缩』,在读取的时候将会自动解压缩,但是在储存的时候,将会先进行压缩后再储存(看来对于大档案似乎蛮有用的!) d :当 dump(备份)程序被执行的时候,设定 d 属性将可使该档案(或目录)不具有 dump 功能 i :这个 i 可就很厉害了!他可以让一个档案『不能被删除、改名、设定连结也无法写入或新增资料!』对于系统安全性有相当大的帮助! j:当使用 ext3 这个档案系统格式时,设定 j 属性将会使档案在写入时先记录在journal 中!但是当 filesystem 设定参数为 data=journalled 时,由于已经设定了日志了,所以这个属性无效! s :当档案设定了 s 参数时,他将会被完全的移除出这个硬盘空间。 u :与 s 相反的,当使用 u 来设定档案时,则数据内容其实还存在磁盘中,可以使用来 undeletion. 注意:这个属性设定上面,比较常见的是 a 与 i 的设定值,而且很多设定值必须要身为root 才能够设定的喔!
- lsattr (显示档案隐藏属性)
[root@linux ~]# lsattr [-aR] 档案或目录 参数: -a :将隐藏文件的属性也秀出来; -R :连同子目录的数据也一并列出来! .档案搜寻:which,whereis,locate,find
- which (寻找『执行档』)
[root@linux ~]# which [-a] command 参数: -a :将所有可以找到的指令均列出,而不止第一个被找到的指令名称
- whereis (寻找特定档案)
[root@linux ~]# whereis [-bmsu] 档案或目录名 参数: -b :只找 binary 的档案 -m :只找在说明文件 manual 路径下的档案 -s :只找 source 来源档案 -u :没有说明档的档案!
- locate
[root@linux ~]# locate filename
- find
[root@linux ~]# find [PATH] [option] [action]参数: . 与时间有关的参数: -atime n :n 为数字,意义为在 n 天之前的『一天之内』被 access 过的档案; -ctime n :n 为数字,意义为在 n 天之前的『一天之内』被 change 过状态的档案; -mtime n :n 为数字,意义为在 n 天之前的『一天之内』被 modification 过的档案; -newer file :file 为一个存在的档案,意思是说,只要档案比 file 还要新,就会被列出来 . 与使用者或群组名称有关的参数: -uid n :n 为数字,这个数字是使用者的账号 ID,亦即 UID ,这个 UID 是记录在/etc/passwd 里面与账号名称对应的数字。 -gid n :n 为数字,这个数字是群组名称的 ID,亦即 GID,这个 GID 记录在/etc/group -user name :name 为使用者账号名称喔!例如 dmtsai -group name:name 为群组名称喔,例如 users ; -nouser :寻找档案的拥有者不存在 /etc/passwd 的人! -nogroup :寻找档案的拥有群组不存在于 /etc/group 的档案!当您自行安装软件时,很可能该软件的属性当中并没有档案拥有者,这是可能的!在这个时候,就可以使用 -nouser 与 -nogroup 搜寻。 . 与档案权限及名称有关的参数: -name filename:搜寻文件名称为 filename 的档案; -size [+-]SIZE:搜寻比 SIZE 还要大(+)或小(-)的档案。这个 SIZE 的规格有: c: 代表 byte, k: 代表 1024bytes。所以,要找比 50KB还要大的档案,就是『 -size +50k 』 -type TYPE:搜寻档案的类型为 TYPE 的,类型主要有:一般正规档案 (f),装置档案 (b, c), 目录 (d), 连结档 (l), socket (s),及 FIFO (p) 等属性。 -perm mode:搜寻档案属性『刚好等于』 mode 的档案,这个 mode 为类似 ! -perm -mode :搜寻档案属性『必须要全部囊括 mode 的属性』的档案,举例来说,我们要搜寻 -rwxr--r-- ,亦即 的档案,使用 -perm -,当一个档案的属性为 -rwsr-xr-x ,亦即 时,也会被列出来,因为 -rwsr-xr-x 的属性已经囊括了 -rwxr--r-- 的属性了。 -perm + 时,但一个档案属性为 -rw-------也会被列出来,因为他有 -rw.... 的属性存在! . 额外可进行的动作: -exec command :command 为其它指令,-exec 后面可再接额外的指令来处理搜寻到的结果。 -print:将结果打印到屏幕上,这个动作是预设动作!
最新文章
- appium Ruby自动化测试搭建
- SQLSERVER如何查看索引缺失
- .net mvc onexception capture; redirectresult;
- 20145208 《Java程序设计》第7周学习总结
- import了sun开头的类,虽然它在代码里压根就没派上用处!但是必须得引用!
- android开发关于popupwindow显示关闭的笔记
- HDU H204 阿牛的EOF牛肉串
- iOS_文章3党库SDWebImage
- MYSQL最大连接数修改
- WinFom解决最小化最大化后重绘窗口造成闪烁的问题
- 201521123063 JAVA程序设计 第二周学习总结
- Flask导入静态文件问题
- Deformable Convolutional Network
- mvc网站迁移.net core记录
- 无法解析依赖项。“Microsoft.Net.Http 2.2.29”与 &#39;Microsoft.Net.Http.zh-Hans
- OpenStack的HA方案
- MT【14】最大最小问题变形
- Atcoder Grand 011 C - Squared Graph
- 【内核】内核链表使用说明,list.h注释
- django CBV模式下如何去掉csrf验证
热门文章
- TCP协议三次握手过程分析
- vs2015 不支持javascript的智能提示高亮
- html系列教程--p param progress rp rt ruby script select small source
- Spring整合hibernate4:事务管理[转]
- 已经包含了#include <;atlcom.h>; #include <;comutil.h>;还是报错
- Application Loader下载安装和上传IOS app程序
- spring常量值注入
- xtrabackup执行备份要拥有的权限
- KPI考核
- ANDROID SHAPE画圆形背景_ANDROID实现角标布局