linux总结(五):Linux文件与目录命令cd 、pwd,ls,mkdir,rmdir,touch

2024-04-28 05:18

本文主要是介绍linux总结(五):Linux文件与目录命令cd 、pwd,ls,mkdir,rmdir,touch,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、cd命令

          cd 命令,是 Change Directory 的缩写,用来切换工作目录。

1、cd 命令的基本格式如下:

            [root@localhost ~]# cd [相对路径或绝对路径]

除此之外,cd 命令后面可以跟一些特殊符号,表达固定的含义,如表 1 所示:

表 1 cd 命令的特殊符号
特殊符号作 用
~代表当前登录用户的主目录
~用户名表示切换至指定用户的主目录
-代表上次所在目录
.代表当前目录
..代表上级目录

 2、“cd  ~”或者" cd ":

              回到主目录。root或者home目录。

3、“cd  -” :

              回到刚刚的目录。

4、pwd 命令用于显示当前所在的目录

5、"cd  ."或者“cd  ..”:

              到当前目录和到上一级目录。

二、pwd显示当前路径

         pwd 命令,是 Print Working Directory (打印工作目录)的缩写,功能是显示用户当前所处的工作目录

 1、whoami 命令用于确定当前登陆的用户

           [root@localhost ~]# whoami
           root
          [root@localhost ~]# pwd
           /root

2、注意,在 [demo@localhost ~]# 这一部分中,虽然也显示出当前所在的目录(例如 ~ 表示主目录),但此位置只会列出整个路径中最后的那一个目录

         [root@localhost ~]# cd /var/mail
         [root@localhost mail]# pwd
         /var/mail 

          我们知道,不同的目录中,目录名是可以重复的,因此,仅通过 [root@localhost mail] 中的 mail,根本无法判断其所在的具体位置,而使用 pwd 命令,可以输出当前所在目录的完整路径。 

三、ls  查看目录下文件

         ls 命令,list 的缩写,是最常见的目录操作命令,其主要功能是显示当前目录下的内容。 

1、基本格式:

            [root@localhost ~]# ls [选项] 目录名称

2、命令常用选项:

表 1 ls 命令常用选项及功能
选项功能
-a显示全部的文件,包括隐藏文件(开头为 . 的文件)也一起罗列出来,这是最常用的选项之一。
-A显示全部的文件,连同隐藏文件,但不包括 . 与 .. 这两个目录。
-d仅列出目录本身,而不是列出目录内的文件数据。
-fls 默认会以文件名排序,使用 -f 选项会直接列出结果,而不进行排序。
-F在文件或目录名后加上文件类型的指示符号,例如,* 代表可运行文件,/ 代表目录,= 代表 socket 文件,| 代表 FIFO 文件。
-h以人们易读的方式显示文件或目录大小,如 1KB、234MB、2GB 等。
-i显示 inode 节点信息。
-l使用长格式列出文件和目录信息。
-n以 UID 和 GID 分别代替文件用户名和群组名显示出来。
-r将排序结果反向输出,比如,若原本文件名由小到大,反向则为由大到小。
-R连同子目录内容一起列出来,等於将该目录下的所有文件都显示出来。
-S以文件容量大小排序,而不是以文件名排序。
-t以时间排序,而不是以文件名排序。
--color=never
--color=always
--color=auto
never 表示不依据文件特性给予颜色显示。
always 表示显示颜色,ls 默认采用这种方式。
auto 表示让系统自行依据配置来判断是否给予颜色。
--full-time以完整时间模式 (包含年、月、日、时、分)输出
--time={atime,ctime}输出 access 时间或改变权限属性时间(ctime),而不是内容变更时间。

        注意,当 ls 命令不使用任何选项时,默认只会显示非隐藏文件的名称,并以文件名进行排序,同时会根据文件的具体类型给文件名配色(蓝色显示目录,白色显示一般文件)。除此之外,如果想使用 ls 命令显示更多内容,就需要使用表 1 相应的选项。

3、ls -al

[root@www ~]# ls -al ~
total 156
drwxr-x---  4 root root  4096 Sep 24 00:07 .
drwxr-xr-x 23 root root  4096 Sep 22 12:09 ..
-rw-------  1 root root  1474 Sep  4 18:27 anaconda-ks.cfg
-rw-------  1 root root   955 Sep 24 00:08 .bash_history
-rw-r--r--  1 root root    24 Jan  6  2007 .bash_logout
-rw-r--r--  1 root root   191 Jan  6  2007 .bash_profile
-rw-r--r--  1 root root   176 Jan  6  2007 .bashrc
drwx------  3 root root  4096 Sep  5 10:37 .gconf
-rw-r--r--  1 root root 42304 Sep  4 18:26 install.log
-rw-r--r--  1 root root  5661 Sep  4 18:25 install.log.syslog

        通过使用 -a,你会看到以 . 为开头的几个文件,以及目录文件 (.)、(..)、.gconf 等等,这些都是隐藏的目录和文件。其中,目录文件名以蓝色显示,一般文件以白色显示。注意,Linux 系统中,隐藏文件不是为了把文件藏起来不让其他用户找到,而是为了告诉用户这些文件都是重要的系统文件,如非必要,不要乱动!所以,不论是 Linux 还是 Windows 都可以非常简单地査看隐藏文件,只是在 Windows 中绝大多数的病毒和木马都会把自己变成隐藏文件,给用户带来了错觉,以为隐藏文件是为了不让用户发现。

        不仅如此,这里的 ls 命令还使用了 -l 选项,因此才显示出了文件的详细信息,此选项显示的这 7 列的含义分别是:

  1. 第一列:规定了不同的用户对文件所拥有的权限,具体权限的含义将在后续章节中讲解。
  2. 第二列:引用计数,文件的引用计数代表该文件的硬链接个数,而目录的引用计数代表该目录有多少个一级子目录。
  3. 第三列:所有者,也就是这个文件属于哪个用户。默认所有者是文件的建立用户。
  4. 第四列:所属组,默认所属组是文件建立用户的有效组,一般情况下就是建立用户的所在组。
  5. 第五列:大小,默认单位是字节。
  6. 第六列:文件修改时间,文件状态修改时间或文件数据修改时间都会更改这个时间,注意这个时间不是文件的创建时间。
  7. 第七列:文件名或目录名。

4、如果我们想查看某个目录的详细信息,例如:

         [root@localhost ~]# ls -l /root/
         总用量44
         -rw-------.1 root root 1207 1 月 14 18:18 anaconda-ks.cfg
         -rw-r-r--.1 root root 24772 1 月 14 18:17 install.log
          -rw-r-r--.1 root root 7690 1 月 14 18:17 install.log.syslog

           这个命令会显示目录下的内容,而不会显示这个目录本身的详细信息。如果想显示目录本身的信息,就必须加入 "-d" 选项。

          [root@localhost ~]# ls -ld /root/
          dr-xr-x---.2 root root 4096 1 月 20 12:30 /root/

5、"ls-l" 显示的文件大小是字节,但是我们更加习惯的是千字节用 KB 显示,兆字节用 MB 显示,而 "-h" 选项就是按照人们习惯的单位显示文件大小的, 显示KB或者MB

            [root@localhost ~]# ls -lh
           总用量44K
           -rw-------.1 root root 1.2K 1 月 14 18:18 anaconda-ks.cfg
          -rw-r-r--.1 root root 25K 1 月 14 18:17 install.log
           -rw-r-r--.1 root root 7.6K 1 月 14 18:17 install.log.syslog

四、mkdir命令:创建目录(文件夹) 

mkdir 命令,是 make directories 的缩写,用于创建新目录

1、基本格式:

[root@localhost ~]# mkdir [-mp] 目录名 

  • -m 选项用于手动配置所创建目录的权限,而不再使用默认权限。
  • -p 选项递归创建所有目录,以创建 /home/test/demo 为例,在默认情况下,你需要一层一层的创建各个目录,而使用 -p 选项,则系统会自动帮你创建 /home、/home/test 以及 /home/test/demo

2、使用 -p 选项递归建立目录。

             [root@localhost ~]# mkdir lm/movie/jp/cangls
             mkdir:无法创建目录"lm/movie/jp/cangls":没有那个文件或目录
             [root@localhost ~]# mkdir -p lm/movie/jp/cangls

 3、使用 -m 选项自定义目录权限。

[root@localhost ~]# mkdir -m 711 test2
[root@localhost ~]# ls -l

         仔细看上面的权限部分,也就是 ls 命令输出的第一列数据(绿色部分),test 和 test1 目录由于不是使用 -m 选项设定访问权限,因此这两个目录采用的是默认权限(这里的默认权限值是 755,后续章节再详细介绍默认权限)。而在创建 test2 时,使用了 -m 选项,通过设定 711 权限值来给予新的目录 drwx--x--x 的权限,有关权限值的具体含义也放到后续章节介绍。 

五、rmdir命令  删除空目录

        rmdir(remove empty directories 的缩写)命令用于删除空目录

1、基本格式:

         [root@localhost ~]# rmdir [-p] 目录名 

              -p 选项用于递归删除空目录。 

2、rmdir 命令可以使用 -p 选项递归删除目录。

 [root@localhost ~]# rmdir -p lm/movie/jp/cangls

             此方式先删除最低一层地目录(这里先删除 cangls),然后逐层删除上级目录,删除时也需要保证各级目录是空目录。

3、rmdir 命令的作用十分有限,因为只能刪除空目录,所以一旦目录中有内容,就会报错。例如:

        [root@localhost # mkdir test
        #建立测试目录
        [root@localhost ~]# touch test/boduo
        [root@localhost ~]# touch test/longze
        #在测试目录中建立两个文件
        [root@localhost ~]# rmdir test
        rmdir:删除"test"失败:目录非空

六、touch命令 创建文件及修改文件时间戳

        touch 命令不光可以用来创建文件(当指定操作文件不存在时,该命令会在当前位置建立一个空文件),此命令更重要的功能是修改文件的时间参数(但当文件存在时,会修改此文件的时间参数)。

 1.Linux 系统中,每个文件主要拥有 3 个时间参数(通过 stat 命令进行查看),分别是文件的访问时间、数据修改时间以及状态修改时间:

  • 访问时间(Access Time,简称 atime):只要文件的内容被读取,访问时间就会更新。例如,使用 cat 命令可以查看文件的内容,此时文件的访问时间就会发生改变。
  • 数据修改时间(Modify Time,简称 mtime):当文件的内容数据发生改变,此文件的数据修改时间就会跟着相应改变。
  • 状态修改时间(Change Time,简称 ctime):当文件的状态发生变化,就会相应改变这个时间。比如说,如果文件的权限或者属性发生改变,此时间就会相应改变。

2、基本格式:

[root@localhost ~]# touch [选项] 文件名

选项:

  • -a:只修改文件的访问时间;
  • -c:仅修改文件的时间参数(3 个时间参数都改变),如果文件不存在,则不建立新文件。
  • -d:后面可以跟欲修订的日期,而不用当前的日期,即把文件的 atime 和 mtime 时间改为指定的时间。
  • -m:只修改文件的数据修改时间。
  • -t:命令后面可以跟欲修订的时间,而不用目前的时间,时间书写格式为 YYMMDDhhmm

        可以看到,touch 命令可以只修改文件的访问时间,也可以只修改文件的数据修改时间,但是不能只修改文件的状态修改时间。因为,不论是修改访问时间,还是修改文件的数据时间,对文件来讲,状态都会发生改变,即状态修改时间会随之改变(更新为操作当前文件的真正时间)。

[root@localhost ~]#ll --time=atime bols
#查看文件的访问时间
-rw-r--r-- 1 root root 0 Sep 25 21:23 bols
#文件上次的访问时间为 9 月 25 号 21:23
[root@localhost ~]#touch bols
[root@localhost ~]#ll --time=atime bols
-rw-r--r-- 1 root root 0 May 15 16:36 bols
#而如果文件已经存在,则也不会报错,只是会修改文件的访问时间。

[root@localhost ~]# touch -d "2017-05-04 15:44" bols
[root@localhost ~]# ll bols; ll --time=atime bols; ll --time=ctime bols
-rw-r--r-- 1 root root 0 May 4 2017 bols
-rw-r--r-- 1 root root 0 May 4 2017 bols
-rw-r--r-- 1 root root 0 Sep 25 21:40 bols
#ctime不会变为设定时间,但更新为当前服务器的时间 

--time={atime,ctime}输出 access 时间或改变权限属性时间(ctime),而不是内容变更时间。

 

这篇关于linux总结(五):Linux文件与目录命令cd 、pwd,ls,mkdir,rmdir,touch的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/942399

相关文章

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

nginx启动命令和默认配置文件的使用

《nginx启动命令和默认配置文件的使用》:本文主要介绍nginx启动命令和默认配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录常见命令nginx.conf配置文件location匹配规则图片服务器总结常见命令# 默认配置文件启动./nginx

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

详解Linux中常见环境变量的特点与设置

《详解Linux中常见环境变量的特点与设置》环境变量是操作系统和用户设置的一些动态键值对,为运行的程序提供配置信息,理解环境变量对于系统管理、软件开发都很重要,下面小编就为大家详细介绍一下吧... 目录前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存