zoukankan      html  css  js  c++  java
  • Linux 目录与文件的基本操作

    1 目录与文件

    1.1 文件

    硬盘中的数据在操作系统中的体现为文件。

    1.2 目录

    目录的概念不是文件集合。目录和文件一样,目录也是文件。目录是找到文件的“踏板”。目录的本质是路径映射。

    1.3 Linux目录结构

    根目录

    所有的文件都需要从根开始。Linux只要一个根。就像一颗树。Linux的根与内核直接关联。Linux的根用 / 表示。

    一级子目录

    /bin: 二进制,可执行的命令;

    /sbin: 可执行命令,仅用于管理,通常管理员才有权限使用;

    /boot: 引导,操作系统用于引导系统启动的文件,内核、grub;

    /dev: 设备文件;硬件都已文件形式显示。体现了一切皆文件。

    /etc: 配置文件;

    /home: 普通用户的家目录,/home/USERNAME,例如jerry的家目录为:/home/jerry;

    /root: 管理员的家目录;

    /lib, /lib64: 库文件;

    /media: 挂载点目录,通常用于挂载便携性设备;

    /mnt:挂载点目录,挂载额外的文件系统;

    /misc: 备份目录;

    /opt: 可选目录,通常第三方软件偶尔安装于此路径下;

    /proc: 伪文件系统;其实没有任何文件;内存中内核的映射;

    /selinux: 安全加强的Linux;

    /srv: 属于服务的中间数据的存储位置;

    /sys: 伪文件系统,类似于/proc。通常用于访问硬件设备属性信息;

    /tmp: 临时文件目录;

    /usr: 存储只读文件;

    /var: 经常会发生变化的文件;比如日志等;

    2 Linux路径

    /usr/share/doc

    第一个/ 表示根目录。 之后的/ 表示路径分隔符。

    2.1 基名

    基名,路径的最右侧名称,/user/share/doc的基名 doc。

    basename命令 取得路径基名。

    dirname命令 除基名外的路径。

    wps_clip_image-22778

    2.2 相对路径,绝对路径

    绝对路径:从根开始的路径;

    相对路径:从当前位置开始的路径;

        .:一个点,当前目录;

        ..:两个点,当前目录的上级目录;

    3 文件基本命令

    3.1 ls命令

    列出指定目录下的文件。

    常用参数:

    1. ls [-aAdfFhilnrRSt] 目录名称 
    2. -l  :以长格式显示文件的详细属性,包含档案的属性与权限等等数据; 
    3. -a  :显示所有文件,包括隐藏文件。 
    4. -A  :跟-a功能相同,但不显示.和..; 
    5. -d  :仅列出目录本身,而不是列出目录内的文件数据; 
    6. -f  :直接列出结果,而不进行排序 (ls 预设会以文件名排序!); 
    7. -F  :根据档案、目录等信息,给予附加数据结构,例如:   *:代表可执行文件; /:代表目录; 
    8. -n  :列出 UID 与 GID 而非使用者与群组的名称; 
    9. -R  :连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来; 
    10. -S  :按照文件容量大小排序,而不是用文件名称排序; 
    11. -t  :按照时间排序,而不是用文件名。
    12. -h: 文件大小会自动进行单位换算;
    13. -r:文件名逆序显示;

    例:显示当前目录下的文件。# ls

    wps_clip_image-23124

    例:显示根目录下所有文件

    wps_clip_image-24228

    ls -l与ls -lh

    显示文件详细信息。

    显示格式:

    文件的类型 属主权限 数组权限 其他权限 文件硬连接数 属主 属组 大小 访问日期 文件名

    例:显示文件的详细属性信息。# ls -l

    wps_clip_image-17179

    例:显示文件大小的单位

    wps_clip_image-3556

    例:当前路径为/usr/share。配合相对路径和绝对路径使用ls命令。

    ls -l /usr/share/doc/lsof-2.1/README

    ls -l doc/lsof-2.1/README

    ls -l ./doc/lsof-2.1/README    当前路径

    ls -l ../bin/passwd      父目录

    另外在很多Linux的Shell中,不一样的功能的文件有不一样的颜色被显示。这帮助我们快速确定文件功能。该功能不重要。

    输入:ls /dev

    wps_clip_image-20801

    输入:ls /bin

    wps_clip_image-12365

    3.2 ll命令 显示文件的信息

    ll命令,本质就是ls -l

    3.3 pwd命令 显示当前工作目录

    例:

    image

    3.4 cd命令 进入目录

    例:

    回家目录:cd ~

      cd

      cd ~USERNAME:切换至USERNAME的家目录;

      cd -:在上个目录和当前目录之间切换;

    例:进入/usr/share目录。 cd /usr/share

    例:cd为内建命令;回到家目录的几个技巧。

    wps_clip_image-12893

    例:在某个目录与家目录之间来回切换。cd -

    wps_clip_image-29579

    3.5 mkdir命令 创建目录

    mkdir:创建目录,默认情况下,指定目录的父目录必须存在。

    mkdir 常用参数

    -m, –mode:指定被创建目录的权限值。(不是 rwxrwxrwx 减 umask)

    -p, --parents:创建目录的同时也会创建需要的父目录。

    -v, --verbose:显示创建目录与父目录的过程。

    --help:显示此帮助信息并退出。

    --version:输出版本信息并退出。

    例:mkdir /tmp/x1

    例:x2文件不存在。则会报错。

    mkdir /tmp/x2/hello

    例: 使用p参数,mkdir -pv /tmp/x3/hello

    wps_clip_image-19301

    实例3:创建权限为777的目录

    mkdir -m 777 test3

    image

    3.6 rmdir命令 删除空目录

    这个命令一般不经常使用。

    rmdir:仅能删除删除空目录;

    rmdir -p m/n/o/p 删除当前目录下的m/n/o/p的一整条路径,但要求路径下没有任何文件。

    3.7 cp命令 复制文件

    cp 要复制的文件路径 ...  目标

    常用参数

    参数:
         -a,--archive:此参数的效果和同时指定"-dpR"参数相同。

         -r:递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理。
         -R,--recursive:递归处理,将指定目录下的文件及子目录一并处理。-f,--force:强行复制文件或目录, 不论目的文件或目录是否已经存在。

         -i,--interactive:覆盖文件之前先询问用户。

         -u,--update:使用这项参数之后,只会在源文件的修改时间(Modification Time)较目的文件更新时,或是名称相互对应的目的文件并不存在,才复制文件。
         -v,--verbose:显示执行过程。

         -l,--link:对源文件建立硬链接,而非复制文件。
         -b,--backup:删除、覆盖目的文件先备份,备份的文件或目录亦建立为符号链接,并指向源文件或目录链接的源文件或目录。假如没有加上这个参数,在复制过程中若遇到符号链接,则会直接复制源文件或目录。
         -p,--preserve:保留源文件或目录的属性,包括所有者、所属组、权限与时间。
         -P,--parents:保留源文件或目录的路径,此路径可以是绝对路径或相对路径,且目的目录必须已经丰在。
         -s,--symbolic-link:对源文件建立符号链接,而非复制文件。
         -S <备份字尾字符串>,--suffix=<备份字尾字符串>:用"-b"参数备份目的文件后,备份文件的字尾会被加上一个备份字符串。默认的备份字尾符串是符号"~"

         -V <备份方式>,--version-control=<备份方式>  指定当备份文件时,备份文件名的命名方式,有以下3种:
                             1.numbered或t, 将使用备份编号,会在字尾加上~1~字符串,其数字编号依次递增。
                             2.simple或never 将使用简单备份,默认的备份字尾字符串是~, 也可通过-S来指定。
                             3.existing或nil将使用当前方式,程序会先检查是否存在着备份编号,若有则采用备份编号,若无则采用简单备份。
         -x,--one-file-system:复制的文件或目录存放的文件系统,必须与cp指令执行时所处的文件系统相同,否则不复制,亦不处理位于其他分区的文件。

         --help:显示在线帮助。
         --sparse=<使用时机>:设置保存希疏文件的时机。
         --version:显示版本。

    cp命令对单个文件的复制:

        目标不存在:则复制并重命名指定的名称(指定的名称的父目录必须存在);

        目标存在: 如果目标是文件:则覆盖;如果目标是目录:将文件复制到指定的目录中;

    cp命令对多个文件的复制:

    如果要复制的文件是多个,则目标必须要存在且是目录;默认情况下不cp命令会复制目录。目录下已经有该文件,再复制进来相同文件名的文件。则询问是否要覆盖。

    wps_clip_image-7060

    3.8 mv命令 移动文件

    mv SRC DEST

        规则与cp类似,但cp默认只能对文件操作,mv可以对文件目录均能操作。

    -i:覆盖前提醒确认;

    例:/etc目录下i开头的文件复制到/tmp ,并显示过程。

    wps_clip_image-11173

    3.9 rm命令 删除文件

    rm 只能删除文件,不能删除目录。

    常用参数:

        -i:提醒。

        -f:强行删除;管理员不会有确认提示,直接删掉。

        -r:递归删除目录及其内部的所有文件;

    rm -rf 文件   强行删除文件。 警示:一定要谨慎使用。

    rm -rf / 警示:删除根下所有文件。“自杀”非常危险。

    警告:尽量不要这样操作。误操作经常发生,非常危险。

    4 touch命令

    touch命令一般被用于创建新的空文件。

    但若把touch命令作用于已存在的文件上,则touch命令把文件的访问时间修改为当前时间。

  • 相关阅读:
    [BZOJ2738]矩阵乘法
    [BZOJ2084][Poi2010]Antisymmetry
    [BZOJ2095][Poi2010]Bridges
    [BZOJ1294][SCOI2009]围豆豆Bean
    [AtCoderContest075F]Mirrored
    [AtCoderContest015D]A or...or B Problem
    [UOJ#276]【清华集训2016】汽水
    忠诚的皇家守卫团——中间件
    Django(五):视图和路由系统
    Django(四):ORM
  • 原文地址:https://www.cnblogs.com/shijiaqi1066/p/3403844.html
Copyright © 2011-2022 走看看