Linux目录和文件操作命令

文件系统层次结构标准

文件系统层次结构标准(Filesystem Hierarchy Standard,FHS):定义了在类Unix系统中的目录结构和目录内容。它由Linux基金会维护,最新版为2015年六月三日发布的3.0版,仅用于Linux的各类发行版中。

(1)/

根目录,是树状目录结构的根节点。

(2)/root

root用户的家目录。

(3)/home

普通用户的家目录建在home目录下,比如普通用户nsk:/home/nsk

几个比较重要的目录,平时需要注意不要误删除或者随意更改内部文件。

(4)/etc

系统的配置文件,若更改了其中的某个文件可能会导致系统不能启动。

(5)/bin, /sbin, /usr/bin, /usr/sbin

系统预设的执行文件的放置目录。 /bin存放着用户最经常使用的命令,比如ls命令就在/bin/ls目录;/usr/bin存放着用户使用的应用程序;/sbin存放的是root用户使用的系统管理程序;/usr/sbin是root用户使用的比较高级的管理程序和系统守护程序。

(6)/dev

目录dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的

绝对路径和相对路径

目录和文件的绝对路径和相对路径:

(1)绝对路径:一定是由根目录 / 开始写起。路径书写格式由“/”起始。

例如:/home/nsk

(2)相对路径:是从当前所在的工作目录开始写起。不以“/”开设,而是以目录名称开始。

也会用到特别的目录:.(当前目录)和…(父目录)

例如(假设当前目录是/home):nsk或 ./nsk(等价)

例如(假设当前目录是/home/nsk): …/china …/…/china

目录操作命令:

1. pwd命令

pwd命令以绝对路径的方式显示用户当前工作目录。命令将当前目录的全路径名称(从根目录)写入标准输出。

全部目录使用“/”符号分隔。第一个“/”表示根目录,最后一个目录是当前目录。

例如:# pwd //显示当前工作目录

2. cd命令

cd命令用来从当前工作目录切换到新的工作目录DirName。 新的工作目录DirName的表示有绝对路径或相对路径。

格式: cd [参数]

参数:绝对路径或相对路径(几个特殊路径:/、~、…)

例如:# cd / //切换到系统根目录

# cd ~//切换到用户家目录,~可缺失

# cd …//返回到上一级目录

# cd /etc/sysconfig///切换到/etc/sysconfig目录

3. ls命令

ls命令用来列出某个目录下的文件和目录信息。

格式:ls [选项] [参数]

选项:-l (以长格式显示目录下的内容列表)

-R (显示出目录下以及其所有子目录的文件名(包括了隐藏文件))

参数:目录或文件

例如:# ls //列出当前目录下的文件和目录

# ls \home //列出绝对路径(或相对路径)下的文件和目录

# ls -l//列出当前目录下所有文件的权限、所有者、文件大小、

修改时间及名称

# ls \etc\tt //列出给出名称的文件(当前目录或绝对路径或相对路径)*

4. mkdir命令

** mkdir命令用于创建一个或多个目录。**

** 格式:mkdir [选项] [参数]**

** 选项:-p (若所要建立目录的父目录不存在,则同时创建该目录及该目录的父目录,即可创建多级目录)**

-m (建立目录的同时设置目录的权限)

** 参数: 一个或多个目录(绝对路径或相对路径)**

例如:# mkdir dir1 dir2 //在当前目录下创建dir1,dir2目录

# mkdir dir2/dir3 //在相对路径下在dir2目录内创建dir3目录

**# mkdir –p dir4/dir5//在当前目录下创建多级目录 **

5. rmdir命令

rmdir命令用于删除一个或多个空目录。如果被删除目录有其它文件或子目录存在,则删除不成功。

** 格式:rmdir [选项] [参数]**

** 选项:-p (在删除目录时,一并删除父目录,但要求父目录中必须没有其他目录的存在,即可删除多级目录)**

参数: 一个或多个目录(绝对路径或相对路径)

例如:# rmdir dir2/dir3 //在相对路径下在dir2目录内删除dir3目录

# rmdir dir1 dir2 //在当前目录下删除dir1,dir2目录

**# rmdir –p dir4/dir5//在当前目录下删除多级目录 **

6. touch命令

touch命令用于新建普通文件,该命令的语法为:

touch 文件名或文件名列表

例如:

# touch file1 file2 //在当前目录下建立一个空文件file1

7. cp命令

cp命令主要用于文件或目录的复制。

格式:cp [选项] [参数]

选项:-f (如果目标文件或目录存在,则先删除它们再进行复制(即覆盖),并且不提示用户)

-i(如果目标文件或目录存在,则在覆盖既有文件之前先询问用户)

-p(保留源文件或目录的属性)

-r(递归复制所有目录,将所有的非目录内容当作文件一样复制)

** 参数: <源文件或目录> <目的文件或目录> (绝对路径或相对路径)**

例如(复制文件:源参数是文件,目标参数是文件或目录):

# cp file1 file2//把当前目录中的文件file1复制并更名成file2

# cp file1 dir1//把当前目录的文件file1复制到目录dir1下成file1

# cp /user/file1 .//将user目录下file1文件复制到当前目录下成file1

# cp /user/file1 file2//将user目录下file1文件复制到当前目录下更名为file2

例如(复制目录:源参数是目录,目标参数是目录):

# cp -r dir1 dir2//在当前目录中复制整个dir1目录到:

(1)dir2目录内(dir2存在)

(2)当前目录并改名为dir2(dir2不存在)

8. mv命令

mv命令用于移动或更改文件和目录的名称。

格式:mv [选项] [参数]

选项:-f(文件重命令时强制覆盖已有文件)

-u(目标文件比源文件新时不覆盖)

-i(覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件)

参数:<源文件或目录> <目的文件或目录>(绝对路径或相对路径)

例如(移动文件:源参数是文件,目标参数时文件或目录):

# mv file1 file2//把当前目录中文件file1更名为file2

# mv file1 dir1//把当前目录中文件file1移动到目录dir1下成file1

# mv /user/file1 .//将user目录下file1文件移动到当前目录下成file1

# mv /user/file1 file2//将user目录下file1文件复制到当前目录下更名为file2

例如(移动目录):

# mv dir1 dir2//在当前目录中:

(1)整个dir1目录移动到dir2目录内(dir2存在)

(2)dir1目录更名为dir2目录(dir2不存在)

9. rm命令

rm命令用于删除文件或目录。

格式:rm [选项] [参数]

选项:-i(删除每个文件或目录时给用户提示)

-r(递归删除目录,即包含目录下的文件和各级子目录)

-f(删除文件或目录时不提示用户)

参数:[文件名或目录名或列表](绝对路径或相对路径)

** 例如:#rm file //删除当前目录下的文件file**

** # rm -r dir1 //删除目录dir1及其子目录下所有文件**

注意:rm 命令是一个具有破坏性的命令,因为 rm 命令会永久性地删除文件或目录,这就意味着,如果没有对文件或目录进行备份,一旦使用 rm 命令将其删除,将无法恢复,因此,尤其在使用 rm 命令删除目录时,要慎之又慎。

参考故事:rm –rf 的悲剧

rm –rf / user