文档中心

分享文档

Linux 文件与目录的基本常用命令

发布日期:2008-10-21浏览次数:0

一、目录相关命令

mkdir - 创建目录命令

    功能:创建一个新目录。

    语法:mkdir [选项] dirname

    说明:该命令创建由 dirname 命名的目录。要求创建目录的用户在当前目录中(dirname 的父目录中)具有写权限,并且 dirname 不能是当前目录中已有的目录或文件名称。

    命令中各选项的含义如下:

  • -m:对新建目录设置存取权限,也可以用 chmod 命令设置。
  • -p:可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。

    在当前目录中建立 test 和 test 下的 “/test2” 目录,也就是连续建立两个目录。例:

  1. mkdir -p -m 700 ./test/test2 

    该命令的含义为在当前目录中创建嵌套的目录层次 test/test2 权限设置为只有文件所有者有读、写和执行权限。

 

rmdir - 删除目录命令

    功能:删除空目录。

    语法:rmdir [选项] dirname

    说明:dirname 表示目录名。该命令从一个目录中删除一个或多个子目录项。需要特别注意的是,一个目录被删除之前必须是空的(注意,rm-r dir 命令可代替 rmdir ,但是有很大的危险性)。删除某目录时也必须具有对父目录的写权限。

    命令中各选项的含义如下:

  • -p:递归删除目录 dirname ,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。

    将 /usr/test/test2” 目录删除,如果上级目录为空则删除,否则显示目录内容。例:

  1. $ sudo rmdir -p /usr/test/test2 

    这里用到 sudo 命令可以提升用户权限,但要有 sudo 的权限才能使用(需要由系统管理员设置 sudo 权限)。当然在删除有删除权限的目录时就不需要用到 sudo 。删除用户目录下子目录 “./test/test2” ,例:

  1. rmdir -p ./test/test2 

 

cd - 改变工作目录

    功能:改变工作目录

    语法:cd [目录路径]

    说明:该命令将当前目录改变至指定的新工作目录。若没有指定新的工作目录路径,则回到用户的主目录。为了改变到指定目录,用户有必须有对指定目录的执行的读权限。

    该命令可以使用通配符。假设用户当前目录是 “/home/user/” ,现在更换到 “/home/user/test/” 目录中,例:

  1. cd test 

 

pwd - 当前目录路径

    功能:显示当前目录的绝对路径

    语法:pwd

    说明:此命令显示当前工作目录的绝对路径。

    假设当前工作目录在 “/home/user/test/” ,例:

  1. pwd 
  2. /home/user/test 

 

ls - 列出目录命令

    功能:ls 是英文单词 list 的简写,其功能为列出指定目录的内容

    语法:ls [选项] [目录或是文件]

    说明:对于每个目录,该命令将列出其中的所有子目录与文件。对于每个文件,ls 将输出其文件名以及所要求的其他信息。默认情况下,输出条目按字母顺序。当未给出目录名或是文件名时,就显示当前目录的信息。

    命令中常用选项的含义如下:

  • -a:显示指定目录下所有子目录与文件,包括隐藏文件
  • -A:显示指定目录下所有子目录与文件,包括隐藏文件。但不列出 “.” 和 “..” 开头的文件夹。
  • -b:对文件名中的不可显示字符用八进制逃逸字符显示。
  • -c:按文件的修改时间排序。
  • -F:在目录名后面标记 “/” ,可执行文件后面标记 “*” ,符号链接后面标记 “@” ,管道(或 FIFO)后面标记 “|” ,要 socket 文件后面标记 “=” 。
  • -i:在输出的第一列显示文件的 i 节点号。
  • -l:以长格式来显示文件的详细信息。这个选项最常用。每行列出的信息依次是:文件类型与权限 -> 链接数 -> 文件属主 -> 文件属组 -> 文件大小 -> 建立或最近修改的时间名字。
  • -L:若指定的名称为一个符号链接文件,则显示链接所指向的文件。
  • -o:与 l 选项相同,只是不显示拥有者信息。
  • -r:按字母逆序或最早优先的顺序显示输出结果。
  • -R:递归式地显示指定目录的各个子目录中的文件。
  • -t:显示时按修改时间(最近优先)而不是按名字排序。
  • -u:显示时按文件上次存取的时间(最近优先)而不是按名字排序。

    用 “ls -l” 命令显示的信息中,开头是由 10 个字符构成的字符串,其中第一个字符表示文件类型,它可以是下述类型之一。

  • -:普通文件
  • d:目录
  • l:符号链接
  • b:块设备文件
  • c:字符设备文件

    后面的 9 个字符表示文件的访问权限,分为 3 组,每组 3 位。第一组表示文件属性主的权限,第二组表示同组用户的权限,第三组表示其他用户的权限。每一组的三个字符分别表示对文件的读、写和执行权限。各权限有如下:

  • r:读
  • w:写
  • x:执行(目录表示进入权限)

    列出当前目录的内容。例:

  1. ls -F 
  2. test.html*           test.doc*           test2/ 
  3. test.txt             test.txt~ 

 

二、复制删除和移动命令

cp - 拷贝命令

功能:将给出的文件或目录拷贝到另一文件或目录中。

语法:cp [选项] 源文件或目录 目标文件或目录

说明:该命令把指定的源文件复制到目标文件或把多个源文件复制目标目录中。

    该命令的各选项含义如下:

  • -a:该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于 dpr 选项的组合。
  • -d:拷贝时保留链接。
  • -f:删除已经存在的目标文件而不提示。
  • -i:与 f 选项相反,在覆盖目标文件之前将给出提示,要求用户确认。回答“y”时目标文件将被覆盖,是交互式拷贝。
  • -p:此时 cp 除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
  • -r:若给出的源文件是一个目录文件,此时 cp 将递归复制该目录下所有的子目录和文件。此时目标文件必须是一个目录名。
  • -l:不做拷贝,只是链接文件。

    例:

  1. cp -i test.txt /home/user/newtest.txt 

    该命令将文件 test.txt 拷贝到 /home/user/newtest.txt 这个目录下,并改名为 newtest.txt 。

 

mv - 移动命令

    功能:用户可以使用 mv 命令来为文件或目录改名或将文件由一个目录移入另一个目录中。该命令如同 DOS 下的 ren 和 move 的组合。

    语法:mv [选项] 源文件或目录 目标文件或目录。

    命令中各选项的含义如下:

  • -i:交互方式操作。如果 mv 操作将导致对己存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答 y 或 n ,这样可以避免覆盖文件。
  • -f:禁止交互操作。如果 mv 操作要覆盖某已有的目标文件时,不给出任何指示,指定此选项后,i 选项将不再起作用。

    说明:如果所给目标文件(不是目录)己存在,此时该文件的内容将被新文件覆盖。为防止用户在不经意的情况下用 mv 命令破坏另一个文件,建议用户在使用 mv 命令移动文件时,最好使用 i 选项。
    将 /home/user/test1/  目录中的所有文件移动到当前目录中(“.”表示当前目录)。例:

  1. mv /home/user/test1/ ./ 

 

rm - 删除命令

功能:在 Linux 中创建文件很容易,系统中随时会有文件变得过时且毫无用处。用户可以用 rm 命令将其删除。该命令的功能为删除一个的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均保持不变。

语法:rm [选项] 文件

    如果没有使用 "-r" 选项,则 rm 不会删除目录。

    该命令的各选项含义如下所示。

  • -f:忽略不存在的文件,从不给出提示。
  • -r:指示 rm 将参数中列出的全部目录和子目录均递归地删除。
  • -i:进行交互式删除。

    说明:使用 rm 命令要格外小心。因为一旦一个文件删除,它是不能被恢复的。
    可以使用 rm 命令中的 i 选项来确认要删除的每个文件。如果用户输入 y ,文件将被删除。如果输入其他任意字符,文件将被保留。例:

  1. rm -i test1.txt test2.txt 
  2. rm: remove write-protected regular file ‘test1.txt’? n 
  3. rm: remove regular file ’test2.txt‘ ? y 

    以上是删除 test1.txt 和 test2.txt 两个文件要求每个文件删除前进行确认。操作最终保留 test1.txt 文件,删除 test2.txt 文件。

 

三、显示文件内容命令

cat - 显示命令

功能1: 在标准输出上显示文件内容

语 法: cat [选项] 文件

该命令功能之一是用来显示文件。它依次读取其后所指文件的内容并将其输出到标准输出。

cat 命令中各个乖选项的含义为:

  • -v: 用一种特殊形式显示控制字符,LFD 与 TAB 除外。加入“-v”选项后,“-T”各“-E”选项将起作用。
  • -T: 将 TAB 显示为“^I”。该选项需要与“-v”选项一起使用。即如果没有使用 -v 选项,则这个选项将被忽略。
  • -E: 在每行的末尾显示一个“$”符。该选项需要与“-v”选项一起使用。
  • -u: 输出不经过缓冲区。
  • -A: 等于“-vET”。
  • -t: 等于“-vT”。
  • -e: 等于“-vE”。

例: $ cat test.out

则在屏幕上显示出 test.out 文件的内容。

例: $ cat test.out test2.out

则在屏幕上依次显示出 test.out test2.out 的内空。

 

功能2: 连接两个或多个文件

说 明: cat 命令功能之二是用来将两个或多个文件连接起来。

例: $ cat file1 file2 > file3

这样就把文件 file1 和文件 file2 的内容合并起来,放入文件 file3 中去。

 

more - 按屏显示命令

功能: 在终端屏幕按屏显示文本文件。

语法: more [选项] 文件

说明: 该命令一次显示一屏文本内容,显示満之后就停下来,若要显示接下来的内容按下回车键或空格键即可。多屏显示时会在终端底部显示出“--More--”,同时显示出已经显示部分的文本占全文本的百分比, more 的各个选项含义如下:

  • -p: 显示下一屏之前清屏。
  • -c: 作用与“-P”基本相同。
  • -d: 在每屏底部显示更友好的提示信息。

    而且若用户输入了一个错误命令则显示出错信息,而不是简单的鸣响终端。

  • -l: 不处理 <Ctrl+l> (换页符)。如果没有给出这个选项,则 more 命令在显示了一个包含有 <Ctrl+l> 字符的行后将暂停显示,并等待接收命令。
  • -s: 文件中连续的空白行压缩成一个空白行显示。

    在 more 命令的执行过程中,用户可以使用 more 自己的一系列命令,动态地根据需要来选择显示的部分。more 在显示完一屏内容之后,将停下来等待用户输入某个命令。

    例,用分页的方式显示一个文件的内容:

  1. $ more test.txt

   显示一个文件的内容,显示之前先清屏,并且在显示器的下方显示完整的百分比。例:

  1. more -dc text.txt 

    显示一个文件的内容,要求每二十行显示一次,且显示之前先清屏。例:

  1. more -c -20 test.txt

 

less - 按页显示命令

    less 命令的功能几乎与 more 命令相同,也是用来按页显示文件,不同之处在于 less 命令在显示文件允许用户既可以向前又可以向后翻阅文件。     less 命令的使用与 more 命令类似,此处不再小举例说明。

 

 head - 头部显示命令

     如果用户希望查看一个文件究竟保存的是什么内容,可以只查看文件的前几行,而不必浏览整个文件。用 head 命令只显示文件或标准输入的前几行。

    语法:head [-n] 文件

    功能:显示指定文件的前若干行。

    说明:该命令显示每个指定文件的前 n 行。如果没有给出 n 值,默认设置为10。如果没有指定文件,head 就从标准输入读取。显示文件 test.txt 的前3行,例:

  1. head -3 test.txt

 

tail - 尾部显示命令

    如果用户相查看文件的尾部,可以使用 tail 命令。

    语法:tail [+/- num] [参数] 文件

    说明:该命令显示一个文件的末尾内容。

    tail 命令中各个选项的含义如下:

  • +num:从第 num 行以后开始显示。
  • - num:从距文件尾 num 行处开始显示。如果省略 num 参数,系统默认值为 10。
  • l:以文本行为 num 的计数单位。与参数选项“+num”或“-num”选项同时使用时,num 表示要显示的文本行行数。
  • c:以字节为 num 表示要显示的字符数。

    l、c 选项可以省略,系统默认值为1,即按行计数。

 

四、文件链接命令

ln - 链接命令

    在文件之间创建链接,给系统中已有的某个文件指定另外 一个可用于访问它的名称。对于这个新的文件名,我们可以为之指定不同的访问权限,以控制对信息的共享和安全性的问题。

语法:ln [选项] 目标 [链接名]

           ln [选项] 目标 目录

    链接有两种,一种被称为硬链接(Hard Link),另一种被称为符呈链接(Symbolic Link)。建立三链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。而对于符号链接,则不存在这个问题。

    如果给 ln 命令加上“-s”选项,则建立符号链接。如果[链接名]已经存在但不是目录,将不做链接。[链接名]可以是任何一个文件名(可包含路径),也可以是一个目录,并且允许它与“目标”不在同一个文件系统中。

    例:

  1. ln -s test.txt /home/user/test 

    用户为当前目录下的文件 test.txt ,创建了一个符号链接 /home/user/test 。