Linux命令(find、tar、umask)

 

umask

 

  • umask可以查询出默认权限。若用户创建文件,默认是没有执行权限的,默认是-rw-rw-rw-。若用户创建目录,则由于执行权限和是否能进入目录有关,因此,具有执行权限,默认为所有权限均开放的,即为drwxrwxrwx。例如,在当前用户umask一下,得到值为0022(当前2015年1月只能理解后三位),或者unmask –s 可得到 u=rwx,g=rx,o=rx 。即把你的默认权限拿掉022的权限值。那么,当前用户创建的文件权限就是-rw-r--r--。创建的目录权限为drwxr-xr-x。

系统时间

  • 三个时间的理解:mtime、ctime、atime。modification time 当该文件的内容数据发生变化时,就会更新这个时间。重点是文件的内容更新,而不是文件的属性或者权限。status time(ctime) 当该文件状态发生改变时,会更新该文件的ctime,比如文件的权限或者属性更改了。access time(atime) 当该文件被访问时,会更新这个读取时间,比如我们用cat file ,file的atime即被更新。查询该文件的atime或者ctime时,用ls –l --time=atime file(即ll file),而不是用ls file。

权限

  • 4为SUID,2为SGID,1为SBIT,当s在owner上面时权限值就是4,s在group上面时权限值就是2,t在others上面时权限值就是1。当然SUID、SGID、SBIT都是在执行权限上面加的。例如
  • -rwsr-xr-x 表示加入了具有SUID的权限,权限值为4755。
  • -rwsr-sr-x 表示加入了具有SUID和SGID的权限,权限值是6755。
  • -rwxr-xr-t 表示加入了具有SBIT的权限,权限值为1755。
  • -rwSrwSrwT 表示具有空的SUID/SGID权限。User,group和others都没有x的执行权限(因为666),所以这个S、T代表是空的。SUID是表示该文件在执行时具有文件拥有者的权限,但是文件拥有者都没有执行权限,所有就没有执行权限给其他人使用,当然就是空的。

 

find

1)可以查找mtime、ctime、atime的相关参数。

  find –mtime 4 表示现在往前4×24 到5×24小时之间的文件。

  find –mtime -4 表示现在往前0×24 到 4×24 小时之间的文件。

  find –mtime +4 表示现在往前5×24 之前的文件。

  find -newer filename 表示比filename还要新的文件。

2)与用户和用户组有关的参数。

  find –user name 查找属于用户名为name的文件。

  find –group name 查找属于用户组名为name的文件。

  find –nouser 查找不属于/etc/passwd的用户名的文件。

  find –nogroup 查找不属于/etc/group的用户组的文件。

  find –uid num 查找属于用户名的uid为num的文件。

  find –gid num 查找属于用户名的gid为num的文件。

3)与文件权限及名称相关的参数。

  find –name filename 查找名称为filename的文件。

  find –size [+|-]SIZE 查找比SIZE大或者小的文件。SIZE的单位有c(byte)和k(1024bytes),例如查找大于8000KB的文件:

         find –size +8000k

  find –type TYPE 查找类型为TYPE的文件。TYPE包括文件(f)、设备文件(b,c)、目录(d)、连接文件(l)、套接字(s)、FIFO(p)。例如查找根目录下所有的套接字文件:

         find / -type s

  find –perm mode 表示该文件的权限等于mode。

    例如:find –perm 4755 列出来的文件权限应该就是-rwsr-xr-x。

    find –perm –mode 表示列出来的文件必须包括mode的权限。

    比如 find –perm -0744 (权限-rwxr—r---),-rwsr-xr-x也能被查出来,因为后者包含了前者。

         find –perm +mode 表示包含任一mode的权限的文件都会被列出来。

 4) 其他操作:-exec command,-exec后面可以直接接命令。

       find –size +300k –exec ls –l {} \;(反斜杠是用来转义分号的。)

       当然find还可以通过通配符(*)来查找。例如,用通配符查找名中含’lsj’的文件:

              find /u01/soft/callout/temp –name ‘*lsj*’

       当然还有一些可以用到“且”或者“或”的关系,“且”用-a表示(and的缩写吧),“或”用-o表示(or的缩写吧)。比如查大于50KB小于60KB的文件:

            find –size +50k –a –size -60k 或者

            find –size +50k –size -60k

      比如查找大于50K并且不属于root的文件:

            find –size +50k –a –not –user root

      比如查找大于1500KB或者等于0KB的文件:

           find \(–size +1500k –o –size 0 \) –exec ls –l {} \;

  •  系统目前已加载到内存中支持的文件系统则有: cat /proc/filesystems

tar

  -j 是通过biz2 程序进行压缩的,通常给这个文件取名为*.tar.bz2。

  -z 是通过gzip程序进行压缩的,通常给这个文件取名为*.tar.gz。

  -c 新建打包文件,可搭配-v来查看打包过程中的文件名。

  -t 是用来查看打包文件中有哪些文件名。

  -x 是解包或解压缩的功能,可以搭配-C在特定目录中揭开。-x、-t、-c绝对不可同时出现在一个命令中。-c是新建打包的,-t是查看打完包的,-x是解包的,所以三者出现在一个命令中,不就搞基了吗?

  -p 保留备份属于的原本权限与属性,常用于备份重要的配置文件。

  -P 这个是保留根目录存在的意思。(tar打包都会去掉根目录,为什么呢?主要是为了安全。如果我们没有去掉根目录,解压的时候,就会把你之前备份的那些文件给覆盖,因为解压后带了绝对路径,所以不安全。去掉这个/,它就有点像相对路径了,你在哪个目录解开的话,里面的文件就会放到当前目录,就不会覆盖到你之前的目录里面去。所以这里就诞生了这个-P的参数)

  -C 指定解压到哪个目录。

  • 压缩:tar –jcv –f filename.tar.bz2 [-|d] 这个压缩比更小,更爽。

        tar –zcv –f filename.tar.gz [-|d] 这个压缩比没有上面那个好。

  • 查看:

        tar –jtv –f filename.tar.bz2 –j压缩的就只有-j去查看

        tar –ztv –f filename.tar.gz  -z 压缩的就只有-z去查看

  • 解压:

        tar –jxv –f filename.tar.bz2

        tar –zxv –f filename.tar.gz

  • 解压到指定目录:

        tar –jxv –f filename.tar.bz2 –C [d]

  • 解压单一文件:

        tar –jxv –f filename.tar.bz2 文件路径/文件名 –C [d]  这里必须加上文件路径,否则会报错“归档中找不到”。

posted @ 2020-03-30 15:35  正宗老菜鸟  阅读(527)  评论(0编辑  收藏  举报