【Linux基础】4. 目录管理

文章目录

  • 【 1. 处理目录的常用命令 】
  • 【 2. ls列出目录 】
  • 【 3. cp切换目录 】
  • 【 4. pwd显示目前所在的目录 】
  • 【 5. mkdir创建新目录 】
  • 【 6. rmdir删除空的目录 】
  • 【 7. cp复制文件或目录】
  • 【 8. rm移除文件或目录 】
  • 【 9. mv移动文件与目录或修改名称 】

  • Linux 的目录结构为树状结构,最顶级的目录为根目录 /,其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。
  • 绝对路径
    绝对路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。
  • 相对路径
    相对路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法。

【 1. 处理目录的常用命令 】

  • 常见的处理目录的命令如下,可以使用 man [命令] 来查看各个命令的使用文档,如 :man cp。
命令名 英文全称 作用
ls list files 列出目录及文件名
cd change directory 切换目录
pwd print work directory 显示目前的目录
mkdir make directory 创建一个新的目录
rmdir remove directory 删除一个空的目录
cp copy file 复制文件或目录
rm remove 删除文件或目录
mv move file 移动文件与目录,或修改文件与目录的名称

【 2. ls列出目录 】

  • 基本语法:
    • -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)。
    • -d :仅列出目录本身,而不是列出目录内的文件数据(常用)。
    • -l :长数据串列出,包含文件的属性与权限等等数据(常用)。
[root@www ~]# ls [-aAdfFhilnrRSt] 目录名称
[root@www ~]# ls [--color={never,auto,always}] 目录名称
[root@www ~]# ls [--full-time] 目录名称
  • 将目录下的所有文件列出来(含属性与隐藏档):[root@www ~]# ls -al ~

【 3. cp切换目录 】

  • 常用于用来变换工作目录。
  • 基本语法:
 cd [相对路径或绝对路径]
  • 实例:操作步骤
#使用 mkdir 命令创建 runoob 目录
[root@www ~]# mkdir runoob

#使用绝对路径切换到 runoob 目录
[root@www ~]# cd /root/runoob/

#使用相对路径切换到 runoob 目录
[root@www ~]# cd ./runoob/

# 表示回到自己的家目录,亦即是 /root 这个目录
[root@www runoob]# cd ~

# 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思;
[root@www ~]# cd ..

【 4. pwd显示目前所在的目录 】

  • 基本语法:
    • -P :显示出确实的路径,而非使用链接 (link) 路径。
[root@www ~]# pwd [-P]
  • 实例1:单纯显示出目前的工作目录
    在这里插入图片描述
  • 实例2:显示出实际的工作目录,而非链接档本身的目录名而已
[root@www ~]# cd /var/mail   <==注意,/var/mail是一个链接档
[root@www mail]# pwd
/var/mail         <==列出目前的工作目录
[root@www mail]# pwd -P
/var/spool/mail   <==怎么回事?有没有加 -P 差很多~
[root@www mail]# ls -ld /var/mail
lrwxrwxrwx 1 root root 10 Sep  4 17:54 /var/mail -> spool/mail
# 看到这里应该知道为啥了吧?因为 /var/mail 是链接档,链接到 /var/spool/mail 
# 所以,加上 pwd -P 的选项后,会不以链接档的数据显示,而是显示正确的完整路径啊!

【 5. mkdir创建新目录 】

  • 基本语法:
    • -m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
    • -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
mkdir [-mp] 目录名称
  • 实例:1:到/tmp底下尝试创建数个新目录
[root@www ~]# cd /tmp
[root@www tmp]# mkdir test    <==创建一名为 test 的新目录
[root@www tmp]# mkdir test1/test2/test3/test4
mkdir: cannot create directory `test1/test2/test3/test4': 
No such file or directory       <== 没办法直接创建此目录啊!
[root@www tmp]# mkdir -p test1/test2/test3/test4

加了这个 -p 的选项,可以自行帮你创建多层目录!

  • 实例2:创建权限为 rwx–x–x 的目录
[root@www tmp]# mkdir -m 711 test2
[root@www tmp]# ls -l
drwxr-xr-x  3 root  root 4096 Jul 18 12:50 test
drwxr-xr-x  3 root  root 4096 Jul 18 12:53 test1
drwx--x--x  2 root  root 4096 Jul 18 12:54 test2

上面的权限部分,如果没有加上 -m 来强制配置属性,系统会使用默认属性。
如果我们使用 -m ,如上例我们给予 -m 711 来给予新的目录 drwx–x–x 的权限。

【 6. rmdir删除空的目录 】

  • 基本语法:
    • -p :从该目录起,一次删除多级空目录 。
 rmdir [-p] 目录名称
  • 实例1:删除 runoob 目录
[root@www tmp]# rmdir runoob/
  • 实例2:将 mkdir 实例中创建的目录(/tmp 底下)删除掉!
[root@www tmp]# ls -l   <==看看有多少目录存在?
drwxr-xr-x  3 root  root 4096 Jul 18 12:50 test
drwxr-xr-x  3 root  root 4096 Jul 18 12:53 test1
drwx--x--x  2 root  root 4096 Jul 18 12:54 test2
[root@www tmp]# rmdir test   <==可直接删除掉,没问题
[root@www tmp]# rmdir test1  <==因为尚有内容,所以无法删除!
rmdir: `test1': Directory not empty
[root@www tmp]# rmdir -p test1/test2/test3/test4
[root@www tmp]# ls -l        <==您看看,底下的输出中test与test1不见了!
drwx--x--x  2 root  root 4096 Jul 18 12:54 test2

利用 -p 这个选项,立刻就可以将 test1/test2/test3/test4 一次删除。
不过要注意的是,这个 rmdir 仅能删除空的目录, 删除非空目录需要 rm 命令。

【 7. cp复制文件或目录】

  • 基本语法:
    • -a:相当于 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
    • -d:若来源档为链接档的属性(link file),则复制链接档属性而非文件本身;
      –f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
    • -i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
    • -l:进行硬式链接(hard link)的链接档创建,而非复制文件本身;
    • -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
    • -r:递归持续复制,用於目录的复制行为;(常用)
    • -s:复制成为符号链接档 (symbolic link),亦即『捷径』文件;
    • -u:若 destination 比 source 旧才升级 destination !
[root@www ~]# cp [-adfilprsu] 来源档(source) 目标档(destination)
[root@www ~]# cp [options] source1 source2 source3 .... directory
  • 实例1:用 root 身份,将 root 目录下的 .bashrc 复制到 /tmp 下,并命名为 bashrc
[root@www ~]# cp ~/.bashrc /tmp/bashrc
[root@www ~]# cp -i ~/.bashrc /tmp/bashrc
cp: overwrite `/tmp/bashrc'? n  <==n不覆盖,y为覆盖

【 8. rm移除文件或目录 】

  • 基本语法:
    • -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
    • -i :互动模式,在删除前会询问使用者是否动作
    • -r :递归删除,最常用在目录的删除了,这是非常危险的选项。
 rm [-fir] 文件或目录
  • 实例1:将刚刚在 cp 的实例中创建的 bashrc 删除掉
[root@www tmp]# rm -i bashrc
rm: remove regular file `bashrc'? y

如果加上 -i 的选项就会主动询问,避免你删除到错误的档名!

【 9. mv移动文件与目录或修改名称 】

  • 基本语法:
    • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
    • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
    • -u :若目标文件已经存在,且 source 比较新,才会升级 (update)
[root@www ~]# mv [-fiu] source destination
[root@www ~]# mv [options] source1 source2 source3 .... directory
  • 实例1:复制一文件,创建一目录,将文件移动到目录中
[root@www ~]# cd /tmp
[root@www tmp]# cp ~/.bashrc bashrc
[root@www tmp]# mkdir mvtest
[root@www tmp]# mv bashrc mvtest
  • 实例2:将刚刚的目录名称更名为 mvtest2
[root@www tmp]# mv mvtest mvtest2

你可能感兴趣的:(Linux,linux)