zoukankan      html  css  js  c++  java
  • Linux文件与目录管理

    目录与路径相关,文件与目录的增删改查命令等

    参考资料:鸟哥的linux私房菜

    目录与路径

    绝对路径:从根目录写起,如/usr/share/doc

    相对路径:即相对当前工作目录,如由usr/share/doc到/usr/share/man目录,可cd../man

    目录相关操作

    切换目录:  cd  [路径]

    显示当前目录:  pwd   [-P]      (-P可选参数,加上则显示实际当前路径,若不加则显示连接文件本身的目录名)

    创建一个新目录:  mkdir  [-mp]   [目录]     (-m可选参数,可配置文件权限,-p可递归创建多层目录)

    xxx@xxx:~/test$ mkdir -m 557 hello
    xxx@xxx:~/test$ ls -l
    总用量 4
    dr-xr-xrwx 2 xxx xxx 4096 1月   5 22:17 hello

    删除一个空目录:  rmdir  [-p]  [目录]     (-p可选参数,连同上层空目录一起删除)

    文件与目录管理

    查看文件目录:ls  -[aAdfFhilnrRSt]   [目录]        (-a全部包括隐藏文件,-A全部但不包括隐藏文件,-d仅目录本身,-l列出文件属性与权限[最常用],-n列出UID,GID,-rRSt均为排列方式不同)

           ls [--full-time]   目录  (输出访问时间或权限改变时间)

    复制文件:cp  [-adfilprsu]  [源文件] [目标文件]  (-a数据特性完全一致,-d复制连接文件,-i若目标文件已存在则覆盖时先询问,-p连同文件属性一起复制-r用于目录复制的递归复制,-s复制成连接文件)

    xxx@xxx:/home/xxx/test# cp /home/xxx/code/a.json .
    xxx@xxx:/home/xxx/test# ls -l
    总用量 4
    -rw-r--r-- 1 root root 23 1月 6 01:15 a.json
    root@xxx:/home/xxx/test# ls -l /home/lht/code/a.json
    -rw-r--r-- 1 xxx xxx 23 1月 1 23:03 /home/lht/code/a.json
    如上复制出来属性不同,需合理使用参数

    删除文件:rm   [-fir]  [文件或目录]  (-f即force忽略不存在的文件,-i删除前询问用户,-r递归删除)

    移动文件或改名:mv  [-fiu]  [源文件] [目标文件]  (-f强制移动,-i若目标文件存在则询问是否覆盖,-u若目标文件存在且较新才更新)

    取得文件名:basename  [文件或目录]

    取得目录名:dirname [文件或目录]

    创建文件: touch [-acdmt]  [文件]     (-a修改访问时间,-c仅修改文件时间 文件不存在不创建新文件,-d可接修改日期,-m仅修改mtime,-t接修改时间格式[YYMMDDhhmm])

    xxx@xxx:~/test$ touch -t 1612300202 hello
    xxx@lxxx:~/test$ ls -l hello
    -rwxr-xr-x 1 xxx xxx 18 12月 30  2016 hello

    文件内容查阅

    1.直接查看

    直接查看:cat [-AbEnTv]   [文件](-A列出特殊字符,-b列出行号,-n列出行号包括空白行,-T显示tab键,-v列出一些看不出来的特殊字符)

    反向列示:tac  [文件] (行逆向输出)

    xxx@xxx:~/test$ cat -b hello
         1    hello
         2    world
         3    yes
         4    !
    xxx@xxx:~/test$ tac hello
    !
    yes
    world
    hello

    添加行号打印:nl  [-bnw] [文件]  ()

    2.可翻页查看

    more [文件]

    less [文件]     (可前后翻)

    3.数据选取

    取前几行: head  [-n  number]  [文件]

    取后几行: tail  [-n   number]  [文件]

    非纯文本查看: od  [-t TYPE] [文件]    (TYPE为输出类型,a默认,c ASCAII形式,d十进制,f浮点数,o八进制,x十六进制)

    xxx@xxx:~/test$ od -t x hello
    0000000 6c6c6568 6f770a6f 0a646c72 0a736579
    0000020 00000a21
    0000022

    文件与目录默认权限与隐藏权限

    文件默认权限:umask  [-S]      (-S可选参数,以rwx形式显示)  //默认属性的意思即是创建一个文件或目录所赋予的属性

    xxx@xxx:~$ umask
    0022
    xxx@xxx:~$ umask -S
    u=rwx,g=rx,o=rx

    数字形态:第一个为特殊权限,后面三个分别为user,group,others,rwx权限需要不需要哪个加上相应数字4,2,1即可,如:不要写和执行即1+2=3

    xxx@xxx:~$ umask 033
    xxx@xxx:~$ umask -S
    u=rwx,g=r,o=r

    设置文件隐藏属性:chattr  [+-=]   [-ASacdistu] [文件或目录]  (+增加,-减少,=设置)(-S同步写入磁盘,-a只能增加不能修改删除数据【root可用】,-c自动压缩,-i文件无法删除改名添加写【root可用】,-s删除时完全删除,-u与s相反)

    xxx@xxx:~/test$ sudo chattr +i world
    [sudo] xxx 的密码:
    xxx@xxx:~/test$ rm world
    rm: 无法删除'world': 不允许的操作

    查看文件隐藏属性:lsattr  [-adR]  [文件或目录]  (-a隐藏文件属性,-d若接目录则仅列出目录,-R列出子目录数据)

    xxx@xxx:~/test$ lsattr world
    ----i---------e---- world

    文件特殊权限

    SUID:仅对二进制文件有效;执行者需要可执行权限;执行过程有效;执行者具有所有者权限

    SGID:对二进制文件有效;执行者需要可执行权限;执行者执行过程中获得程序用户组支持;(若为目录:具有rx权限时可进入目录;用户在此目录下用户组可变成该目录用户组;此目录下具有w权限)

    SBIT:仅对目录有效;若用户对此目录具有w权限时->用户在该目录下创建的文件或目录只有root和自己才能删除。

    设置方式,在权限数字前加4,2,1对应SUID,SGID,SBIT

    xxx@xxx:~/test$ touch hello
    xxx@xxx:~/test$ chmod 4755 hello
    xxx@xxx:~/test$ ls -l hello
    -rwsr-xr-x 1 xxx xxx 0 1月 6 00:50 hello

    命令与文件的查询

    寻找执行文件: which  [文件]

    寻找特定文件: whereis  [-bmsu]  [文件或目录]  (-b二进制格式,-m在说明文件manual路径下的文件,-s只找源文件,-u查找不在上述三个选项中的其他文件)

    xxx@xxx:~$ whereis passwd
    passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man5/passwd.5.gz /usr/share/man/man1/passwd.1.gz /usr/share/man/man1/passwd.1ssl.gz

    在数据库中寻找相关文件名:locate  [-ir]  [部分或全部文件名]      (-i忽略大小写差异,-r可接正则表达式)   

    终极解决方案:find  [PATH]  [option]  [action]  参数有许多选择方案,另外细讲

  • 相关阅读:
    03 Python之变量以及常量介绍
    看女程序员是如何处理男友出轨,网友回复更精彩
    四面美团,收割 offer
    MySQL 优化实战记录
    龙岗一个月350的出租房,我搬出来了
    程序员工作 996 生病 ICU ?
    真的有人在偷听我们讲话么?
    一次非常有趣的 SQL 优化经历
    如何阅读Java源码?
    从 0 开始手写一个 Mybatis 框架,三步搞定!
  • 原文地址:https://www.cnblogs.com/lht-record/p/8208622.html
Copyright © 2011-2022 走看看