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命令 除基名外的路径。

2.2 相对路径,绝对路径

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

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

.:一个点,当前目录;

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

3 文件基本命令

3.1 ls命令

注:可以通过man命令查看ls命令的帮助。

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

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

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

例:不一样的功能的文件有不一样的颜色被显示。这帮助我们快速确定文件功能。该功能不重要。

输入:ls /dev

输入:ls /bin

例:显示文件大小的单位

例:当前路径为/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      父目录

3.2 ll命令 显示单个文件的信息

ll命令 等价于 ls -l 。

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

例:

3.4 cd命令 进入目录

例:

回家目录:cd ~

cd

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

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

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

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

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

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

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

mkdir -m 777 test3

3.6 rmdir命令 删除空目录

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

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

即需要先删空目录m/n/o/p,再删空目录m/n/o,再删m/n,再删空目录 m 。

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命令会复制目录。目录下已经有该文件,再复制进来相同文件名的文件。则询问是否要覆盖。

3.8 mv命令 移动文件

mv SRC DEST

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

-i:覆盖前提醒确认;

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

3.9 rm命令 删除文件

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

常用参数:

-i:提醒。

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

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

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

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

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

Linux 目录与文件的基本操作的更多相关文章

  1. linux 目录下文件批量植入和删除,按日期打包

    linux目录下文件批量植入 [root@greymouster http2]# find /usr/local/http2/htdocs/ -type f|xargs sed -i "   ...

  2. Linux目录和文件——查询目录和文件的命令

    Linux目录和文件——查询目录和文件的命令 摘要:本文主要学习了在Linux系统中是如何查询目录和文件的. which命令 which命令是根据PATH环境变量设置的路径,去搜索执行文件. 基本语法 ...

  3. Linux目录和文件——管理目录和文件的命令

    Linux目录和文件——管理目录和文件的命令 摘要:本文主要学习了Linux系统中关于目录和文件的操作. cd命令 cd命令用来切换工作目录,是Change Directory的缩写. 基本语法 cd ...

  4. Linux目录和文件——目录格式

    Linux目录和文件——目录格式 摘要:本文主要了解了Linux系统的目录格式. 一切皆文件 Linux下“一切皆文件”是Unix/Linux的基本哲学之一. Linux中所有内容都是以文件的形式保存 ...

  5. Linux目录与文件的权限

    零.Linux中的权限为什么重要? 权限直接关系数据安全! 一.用户基础概念: 所有者(owner):拥有这个文件的用户.一般拥有目录或文件的所有权限. 用户组(group):几个用户组成一个用户组, ...

  6. linux目录与文件权限的意义

    现在我们已经知道了Linux系统内文件的三种身份(所有者,用户者,与其他人),知道每种身份都有三种属性(r,w,x),已经能够使用chown,chgrp,chmod去修改这些权限和属性,那么这些文件权 ...

  7. linux 目录与文件命令

    目录与文件常用命令 1.cd命令 cd [相对路径或绝对路径或特殊符号] 功用:变换目录 ps: 不加参数时,默认切换到用户主目录,即环境变量HOME指定的目录,如root用户的HOME变量为/roo ...

  8. Linux 目录和文件操作

    Linux常用命令--目录和文件操作 [目录]删除.复制.移动 : 1.删除文件夹用:rmdir 文件夹名 但是rmdir不能删除非空的文件夹,那如何删除非空文件夹呢: 2.通常情况下,删除文件用:r ...

  9. Linux 目录和文件的操作

    整理常用的linux命令,关于目录和文件的操作,用于巩固记忆,以备不时之需. [root@localhost ~] root:当前用户 localhost:主机名 ~:当前所在位置 符号#:管理员 符 ...

随机推荐

  1. initWithCoder: 与initWithFrame:

    之前一直用代码来编写画面,现在着手使用storyboard和xib来构筑画面,遇到initWithCoder方法, 故查了下,initWithCoder方法的调用,看了篇博客,链接如下: http:/ ...

  2. MIST

    获取当前状态机 modelObj.states[modelObj.curStatus.stateId] "FH_Search" modelObj.states[modelObj.p ...

  3. Ubuntu版本介绍

    转自Ubuntu版本介绍 经常有人问起Ubuntu的版本选择问题,论坛中虽有帖子提及,但不是很详细,不集中,我就尝试把Ubuntu上的这点东东翻译一下,供大家参考,水平有限,敬请包涵.指正.  Ubu ...

  4. 你真的了解 MySQL 数据库的运行状况吗?

    2015年第三方市场调查机构 Evans 数据公司最近公布的一系列客户调查数据显示,在过去两年里,MySQL 在所有开发者使用的数据库中获得了25%的市场份额,Evans 公司的本次调查显示,数据库的 ...

  5. /etc/shadow字段详解

    1)/etc/shadow 概说: /etc/shadow文件是/etc/passwd 的影子文件,这个文件并不由/etc/passwd 而产生的,这两个文件是应该是对应互补的:shadow内容包括用 ...

  6. libstdc++.so.5: cannot open shared object file: No such file or directory

    中文分词一般会选择ICTCLAS的模块,虽然不能说很完美,但也算是一个不错的选择.它提供了windows版本和linux版本,并支持C/C#/JNI接口.这本来是一个不错的事情,但版本一多,官方似乎就 ...

  7. C语言嵌入式系统编程修炼之一:背景篇

    不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语言具备较强的硬件直接操作能力.无疑,汇编语言具备这样的特质.但是,归因于汇编语言开发过程的复杂性,它并不是嵌入式系统开发 ...

  8. 彻底理解ThreadLocal(转)

    ThreadLocal是什么 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路.使用这个工具类可以很简洁地 ...

  9. 创建range分区

    drop table T_PM_ACCT_DTL_AF_TEST; create table T_PM_ACCT_DTL_AF_TEST  (    DATA_DATE     date,    AC ...

  10. [LeetCode#163] Missing Ranges

    Problem: Given a sorted integer array where the range of elements are [lower, upper] inclusive, retu ...