linux杂记(七)linux档案与目录管理指令
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:将结果打印到屏幕上,这个动作是预设动作!
linux杂记(七)linux档案与目录管理指令的更多相关文章
- linux:档案与目录管理
几个常见的目录处理命令: cd(change directory):变更目录 pwd(print working directory):显示当前目录[目录为连结档,则只显示连结档的路径]([-P]不以 ...
- 鸟哥的linux私房菜 - 第5/6/7/9章(在线求助 man page、Linux档案权限与目录配置、Linux档案与目录管理、压缩与打包)
第五章.在线求助 man page X window与文本模式的切换 Ctrl+Alt+F1~F6:文字接口登入tty1~tty6终端机: Ctrl+Alt+F7:图形接口桌面. 注销当前用户:exi ...
- Linux档案与目录管理
Linux档案与目录管理1. 目录与路径1.1 相对路径与绝对路径1.2 目录的相关操作: cd, pwd, mkdir, rmdir cd [相对路径或绝对路径]cd ~ [用户]: 切换家目录cd ...
- Linux 档案与目录管理
『 cd /etc 』这个情况,这也就是所谓的『绝对路径』,他是从根目录连续写上来的一个情况,所以不论你在哪一个路径现执行这一个指令,都会将你移动到该路径下.那如果我是使用『 cd etc 』呢?那表 ...
- Linux学习(四)档案与目录管理
1. 目录与路径 1.1 相对路径与绝对路径 1.2 目录的相关操作: cd, pwd, mkdir, rmdir 1.3 关于执行文件路径的变量: $PATH2. 档案与目录管理 2.1 档 ...
- linux档案和目录管理(后续)
资料来自鸟哥的linux私房菜 四:档案和目录的预设权限和隐藏权限 umask:预设权限,相比与chomd的4,2,1权限,档案满分为666,目录满分为777,umask可以预设消除部分权限,比如一个 ...
- 01 Linux档案与目录管理
1. 目录与路径 1.1绝对路径和相对路径 绝对路径:一定有根目录/写起,例如:/usr/share/doc 相对路径:不是由根目录/写起,例如:由/usr/sha ...
- 鸟哥私房菜基础篇:Linux 档案与目录管理习题
猫宁!!! 参考链接:http://linux.vbird.org/linux_basic/0220filemanager.php 鸟哥是为中国信息技术发展做出巨大贡献的人. 1-什么是绝对路径与相对 ...
- linux 私房菜 CH7 Linux 档案与目录管理
路径 ``` . 此层目录 .. 上一级目录 前一个工作目录 ~ 当前用户的家的目录 ``` 变换目录 cd 显示目录 pwd [-P] -P 显示出确实的路径,而非使用链接 (link) 路径. 创 ...
随机推荐
- 【数据库】SQL优化方法汇总
最近在研究SQL语句的优化问题. 下面是从网上搜集的,有的地方有点老了,可是还是有很多可以借鉴的地方的. 如何加快查询速度? 1.升级硬件. 2.根据查询条件,建立索引,优化索引.优化访问方式,限制结 ...
- UTF-8 BOM编码格式文件对SSI的影响
最近在用SSI(Server Side Includes)加载子模块的时候发现一个奇怪的现象,加载完成后的网页老是CSS有问题,被加载模块渲染后老是有空白部分.下面给出简单的示例. 文件a.html的 ...
- iOS判断并使用百度地图 高德地图 导航 (使用URI,不集成sdk)
[objc] view plaincopy 1. BOOL hasBaiduMap = NO; 2. BOOL hasGaodeMap = NO; 3. ...
- 已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则求出w的后n-1位的数。
描述 已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则求出w的后n-1位的数. 输入 第一行为M,表示测试数据组数.接下来M行,每行包含一个测试数据. 输出 ...
- [C++基础]在构造函数内部调用构造函数
看下面的面试题: #include <iostream> using namespace std; struct CLS { int m_i; CLS( int i ) : m_i(i){ ...
- 浅谈C中的指针和数组(五)
前面写了一些C指针和数组的一些知识,但是还有一些很重要的知识没有交代,这里做一个补充. 首先看一下,普通变量(指针也是变量)和数组名查看地址的方式是不同的. 查看数组变量的地址,不需要使用 & ...
- 转:Server.MapPath相关
如果你从Page类继承的类中执行这条语句,才可以简单地使用 DataBase = Server.MapPath("data.mdb");否则写全命名空间:System.Web.Ht ...
- MigLayout
1. 初始化: MigLayout l = new MigLayout(); MigLayout l = new MigLayout("","","& ...
- [原创]抢先DriverStudio夺取机器控制权(下篇)
原文链接:抢先DriverStudio夺取机器控制权(下篇) 上篇仅仅说到如何抢先DriverStudio,并在结尾留给大家一个遐想.现在我进一步拓展这个遐想,从而给大家更多的遐想.: ) 那么现在我 ...
- rsyslog masg和rawmsg的区别
msg the MSG part of the message (aka "the message" ;)) message 的MSG 部分 rawmsg the message ...