Shell命令-文件及目录操作之ls、cd
文件及目录操作 - ls、cd
1、ls:列出目录的内容及其内容属性信息
ls命令的功能说明
ls命令用于列出目录的内容及其内容属性信息。
ls命令的语法格式
ls[OPTION]... [FILE]...
ls[参数选项] [文件或目录]
ls命令的选项说明
ls选项很多,表1为ls命令的参数及说明:
表1:
ls命令的参数及说明
| 参数选项 | 解释说明(带*的为重点) |
|---|---|
| -l | 长格式显示文件属性* |
| -a | 显示所有字目录和文件(包含隐藏文件)* |
| -d | 只显示目录* |
| -i | 显示Inode号 |
| -h | 人类可读形式显示* |
| -A | 列出所有内容,不包括.与..这两个目录 |
| -p | 目录结尾加斜线,用来区分目录和文件 |
| -S | 根据文件大小排序 |
| -R | 递归列出所有子目录 |
| -F | 不同文件结尾加不同标识(目录结尾加斜线)* |
| --color=auto | 不同的文件类型显示颜色参数 |
| --time-style=(long-iso,iso) | 以不同的时间格式输出 |
| -r | 倒序排序* |
| -t | 按修改时间排序* |
ls命令的实践操作
实验环境
[root@oldboyedu ~]# mkdir /test <-->在“/”下面创建一个test目录
[root@oldboyedu ~]# cd /test <-->切换到test目录
[root@oldboyedu /test]# touch file{1..3}.txt <-->批量创建若干文件
[root@oldboyedu /test]# mkdir dir{1..3} <-->批量创建若干目录
[root@oldboyedu /test]# tree <-->查看上述的文件和目录
.
├── dir1
├── dir2
├── dir3
├── file1.txt
├── file2.txt
└── file3.txt
3 directories, 3 files
范例1: 直接执行
ls命令,不带任何参数。
[root@oldboyedu /test]# ls <-->不加参数,显示所有文件和目录(不包括隐藏文件)
dir1 dir2 dir3 file1.txt file2.txt file3.txt
范例2: 使用
-a参数显示所有文件,特别是隐藏文件。
[root@oldboyedu /test]# touch .file4.txt <-->创建一个隐藏文件,在开头加.即可
[root@oldboyedu /test]# ls <-->没有隐藏文件
dir1 dir2 dir3 file1.txt file2.txt file3.txt
[root@oldboyedu /test]# ls -a <-->列出所有内容,包括隐藏文件
. .. dir1 dir2 dir3 file1.txt file2.txt file3.txt .file4.txt
[root@oldboyedu /test]# ls -A <-->列出所有内容,不包括.和..
dir1 dir2 dir3 file1.txt file2.txt file3.txt .file4.txt
范例3: 使用
-l参数显示详细信息。
[root@oldboyedu /test]# ls -l <-->列出文件的详细信息,及属性及文件名。俗称以长格式显示
total 0
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir1
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir2
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir3
-rw-r--r-- 1 root root 0 Apr 4 14:51 file1.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 file2.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 file3.txt
[root@oldboyedu /test]# ll <-->和 ls -l 效果一样,是因为做了别名
total 0
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir1
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir2
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir3
-rw-r--r-- 1 root root 0 Apr 4 14:51 file1.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 file2.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 file3.txt
范例4: 显示完整时间属性参数
--time-style=long-iso。
[root@oldboyedu /test]# ls -l <-->不加的效果
total 0
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir1
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir2
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir3
-rw-r--r-- 1 root root 0 Apr 4 14:51 file1.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 file2.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 file3.txt
[root@oldboyedu /test]# ls -l --time-style=long-iso <-->加了的效果,需结合参数-l
total 0
drwxr-xr-x 2 root root 6 2019-04-04 14:51 dir1
drwxr-xr-x 2 root root 6 2019-04-04 14:51 dir2
drwxr-xr-x 2 root root 6 2019-04-04 14:51 dir3
-rw-r--r-- 1 root root 0 2019-04-04 14:51 file1.txt
-rw-r--r-- 1 root root 0 2019-04-04 14:51 file2.txt
-rw-r--r-- 1 root root 0 2019-04-04 14:51 file3.txt
范例5: 执行
ls命令带显示内容的访问时间属性的参数。
[root@oldboyedu /test]# stat file1.txt <-->显示文件的属性及状态信息
File: ‘file1.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 51524120 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-04-04 14:51:43.623772862 +0800 <-->文件的访问时间
Modify: 2019-04-04 14:51:43.623772862 +0800
Change: 2019-04-04 14:51:43.623772862 +0800
Birth: -
[root@oldboyedu /test]# date <-->查看当下系统时间
Thu Apr 4 15:17:13 CST 2019
[root@oldboyedu /test]# cat file1.txt <-->查看文件内容即表示访问文件了
[root@oldboyedu /test]# stat file1.txt <-->重新查看文件的访问时间
File: ‘file1.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 51524120 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-04-04 15:17:21.452639089 +0800 <-->file1.txt的访问时间已经变化了
Modify: 2019-04-04 14:51:43.623772862 +0800
Change: 2019-04-04 14:51:43.623772862 +0800
Birth: -
[root@oldboyedu /test]# ls -l --time-style=long-iso --time=atime
total 0
drwxr-xr-x 2 root root 6 2019-04-04 14:52 dir1
drwxr-xr-x 2 root root 6 2019-04-04 14:52 dir2
drwxr-xr-x 2 root root 6 2019-04-04 14:52 dir3
-rw-r--r-- 1 root root 0 2019-04-04 15:17 file1.txt <-->看,只有file1.txt的文件的访问时间发生变化
-rw-r--r-- 1 root root 0 2019-04-04 14:51 file2.txt
-rw-r--r-- 1 root root 0 2019-04-04 14:51 file3.txt
[root@oldboyedu /test]# ls -l --time-style=long-iso
total 0
drwxr-xr-x 2 root root 6 2019-04-04 14:51 dir1
drwxr-xr-x 2 root root 6 2019-04-04 14:51 dir2
drwxr-xr-x 2 root root 6 2019-04-04 14:51 dir3 <-->这里是文件的默认修改时间列
-rw-r--r-- 1 root root 0 2019-04-04 14:51 file1.txt
-rw-r--r-- 1 root root 0 2019-04-04 14:51 file2.txt
-rw-r--r-- 1 root root 0 2019-04-04 14:51 file3.txt
<-->结论:--time=atime是显示访问时间,而非默认的修改时间
范例6: 执行
ls命令,带-F参数(与tree命令的-F非常相似)。
[root@oldboyedu /test]# ls -F <-->所有目录后面加了 /
dir1/ dir2/ dir3/ file1.txt file2.txt file3.txt
[root@oldboyedu /test]# ls -F|grep / <-->过滤目录
dir1/
dir2/
dir3/
[root@oldboyedu /test]# ls -F|grep -v / <-->过滤文件
file1.txt
file2.txt
file3.txt
范例7: 使用
-d参数只显示目录本身信息
[root@oldboyedu /test]# ls -l dir1 <-->无法查到dir1目录的信息
total 0
[root@oldboyedu /test]# ls -ld dir1 <-->显示dir1目录本身的信息
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir1
范例8: 使用
-R参数递归查看目录
[root@oldboyedu /test]# mkdir dir1/sub1/test -p <-->递归创建目录
[root@oldboyedu /test]# ls -R dir1 <-->类似tree,但是没tree好用
dir1:
sub1
dir1/sub1:
test
dir1/sub1/test:
[root@oldboyedu /test]# ls dir1
sub1
范例8:
ls命令的别名相关知识及设置ls别名
[root@oldboyedu /test]# alias |grep ls <-->后续会讲alias,这里只是演示
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
[root@oldboyedu /test]# alias lst='ls -l --time-style=long-iso' <-->设置别名
[root@oldboyedu /test]# alias |grep lst <-->检查是否生效
alias lst='ls -l --time-style=long-iso'
[root@oldboyedu /test]# lst <-->测试结果(这里只是临时生效)
total 0
drwxr-xr-x 3 root root 18 2019-04-05 18:52 dir1
drwxr-xr-x 2 root root 6 2019-04-04 14:51 dir2
drwxr-xr-x 2 root root 6 2019-04-04 14:51 dir3
-rw-r--r-- 1 root root 0 2019-04-04 14:51 file1.txt
-rw-r--r-- 1 root root 0 2019-04-04 14:51 file2.txt
-rw-r--r-- 1 root root 0 2019-04-04 14:51 file3.txt
范例9: 查找最近更新过的文件
[root@oldboyedu /test]# touch /etc/test.txt <-->创建一个新文件
[root@oldboyedu /test]# ls -lrt /etc/
total 1096 <-->有1096行文件
***省略若干文件行***
drwxr-xr-x 2 root root 38 Apr 4 18:14 ntp
-rw-r--r-- 1 root root 51 Apr 5 18:41 resolv.conf
-rw-r--r-- 1 root root 0 Apr 5 19:03 test.txt <-->看,我们新创建的就排在最后,这样,就不用翻屏看了
[root@oldboyedu /test]# ls -lrt /etc/|tail -1 <-->显示最后一行,很方便吧
-rw-r--r-- 1 root root 0 Apr 5 19:03 test.txt
范例10: 显示
inode号并且以人类可读的方式显示
[root@oldboyedu /test]# ls -lhi <-->第一列就是inode号,并且以M为单位显示
total 51M
870845 drwxr-xr-x 3 root root 18 Apr 5 18:52 dir1
17517441 drwxr-xr-x 2 root root 6 Apr 4 14:51 dir2
33636287 drwxr-xr-x 2 root root 6 Apr 4 14:51 dir3
51524120 -rw-r--r-- 1 root root 51M Apr 5 19:16 file1.txt
51524122 -rw-r--r-- 1 root root 0 Apr 4 14:51 file2.txt
51524123 -rw-r--r-- 1 root root 0 Apr 4 14:51 file3.txt
[root@oldboyedu /test]# ls -l <-->没有inode号,并且以b为单位显示
total 51832
drwxr-xr-x 3 root root 18 Apr 5 18:52 dir1
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir2
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir3
-rw-r--r-- 1 root root 53075968 Apr 5 19:16 file1.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 file2.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 file3.txt
2、cd:切换目录
cd命令的功能说明
cd命令用于从当前目录切换到指定的工作目录。
cd命令的语法格式
cd[-L|[-P [-e]]] [dir]
cd[参数选项] [目录]
cd命令的选项说明
cd选项对于初学者可能容易记混,不过勤加练习就好了,表1为cd命令的参数及说明:
表1:cd命令的参数及说明
| 参数选项 | 解释说明 |
|---|---|
| . | 当前目录 |
| .. | 上一级目录 |
| ~ | 用户家目录 |
| - | 上一次所在目录,可来回切换 |
| 空格 | 不加任何参数,不管在哪,都直接回到用户家目录 |
cd命令的实践操作
案例1: 进入系统
/etc目录(cd /etc)
[root@oldboyedu /test]# pwd <-->打印当前路径
/test
[root@oldboyedu /test]# cd /etc/ <-->切换到/etc目录
[root@oldboyedu /etc]# pwd <-->打印当前路径
/etc
案例2: 切换到当前目录的上一级目录(
cd ..)
[root@oldboyedu /etc]# pwd
/etc
[root@oldboyedu /etc]# cd .. <-->".."等同于"../"
[root@oldboyedu /]# pwd
/
案例3: 进入当前目录的父目录的父目录中(
cd ../../)
[root@oldboyedu /]# cd /test/dir1
[root@oldboyedu /test/dir1]# pwd
/test/dir1
[root@oldboyedu /test/dir1]# cd ../../
[root@oldboyedu /]# pwd
/
案例4: 返回当前目录上一次所在的目录(
cd -)
[root@oldboyedu /]# cd /test/dir1
[root@oldboyedu /test/dir1]# pwd
/test/dir1
[root@oldboyedu /test/dir1]# cd
[root@oldboyedu ~]# pwd
/root
[root@oldboyedu ~]# cd -
/test/dir1
案例4: 进入当前用户的家目录(
cd ~)
[root@oldboyedu ~]# cd /test/dir1
[root@oldboyedu /test/dir1]# pwd
/test/dir1
[root@oldboyedu /test/dir1]# cd ~ <-->回到当前root用户的家目录
[root@oldboyedu ~]# pwd
/root
[root@oldboyedu ~]# cd /etc/sysconfig/network-scripts/
[root@oldboyedu /etc/sysconfig/network-scripts]# pwd
/etc/sysconfig/network-scripts <-->这个目录够长吧
[root@oldboyedu /etc/sysconfig/network-scripts]# cd
[root@oldboyedu ~]# pwd <-->cd不加参数,直接回到家目录
/root
今天就写到这里,有什么疑问或出现什么错误,随时欢迎大神们发表评论指点迷津
Shell命令-文件及目录操作之ls、cd的更多相关文章
- Shell命令-文件及目录操作之cp、find
文件及目录操作 - cp.find 1.cp:复制文件或目录 cp命令的功能说明 cp命令用于复制文件或目录. cp命令的语法格式 cp [OPTION]... SOURCE... DIRECTORY ...
- Shell命令-文件及目录操作之mkdir、mv
文件及目录操作 - mkdir.mv 1.mkdir:创建目录 mkdir命令的功能说明 mkdir命令用于创建目录,默认情况下,要创建的目录已存在,会提示文件存在,不会继续创建目录. mkdir命令 ...
- Shell命令-文件及目录操作之pwd、rm
文件及目录操作 - pwd.rm 1.pwd:显示当前所在位置信息 pwd命令的功能说明 pwd命令用于显示当前工作目录的绝对路径,以便在各个目录间来回切换. pwd命令的语法格式 pwd [OPTI ...
- Shell命令-文件及目录操作之touch、tree
文件及目录操作 - touch.tree 1.touch:创建文件或更改文件时间戳 touch命令的功能说明 touch命令用于创建新的空文件或改变已有文件的时间戳属性. touch命令的语法格式 t ...
- Shell命令-文件及目录操作之file、md5sum
文件及目录操作 - file.md5sum 1. file:显示文件的类型 file命令的功能说明 用于辨识文件类型.通过 file 指令,我们得以辨识该文件的类型. file命令的语法格式 file ...
- Shell命令-文件及目录操作之chattr、lsattr
文件及目录操作 - chattr.lsattr 1. chattr:改变文件属性 chattr命令的功能说明 chattr命令用于改变文件属性.这项指令可改变存放在ext2文件系统上的文件或目录属性, ...
- Linux操作系统常用命令合集——第一篇-文件和目录操作(40个命令)
一.选项和参数的区别 在经过上一次的系统安装后我们已经成功登陆,登陆LInux后,我们就可以在#或$符后面去输入命令,有的时候命令后面还会跟着“选项”(英文名:options)或“参数” ...
- Python中的文件和目录操作实现
Python中的文件和目录操作实现 对于文件和目录的处理,虽然可以通过操作系统命令来完成,但是Python语言为了便于开发人员以编程的方式处理相关工作,提供了许多处理文件和目录的内置函数.重要的是,这 ...
- Python之文件与目录操作及压缩模块(os、shutil、zipfile、tarfile)
Python中可以用于对文件和目录进行操作的内置模块包括: 模块/函数名称 功能描述 open()函数 文件读取或写入 os.path模块 文件路径操作 os模块 文件和目录简单操作 zipfile模 ...
随机推荐
- [日常] imap协议读取邮件
telnet imap.sina.net 143 A01 LOGIN shihan@appdev.sinanet.com 密码 A02 list "" * //列出邮件夹 * LI ...
- Java开发笔记(五十三)关键字final的用法
前面介绍了多态的相关用法,可以看到一个子类从父类继承之后,便能假借父类的名义到处晃悠.这种机制在正常情况之下没啥问题,但有时为了预防意外发生,往往只接受当事人来处理,不希望它的儿子乃至孙子来瞎掺和.可 ...
- MySQL查询执行的基础——查询优化处理
查询的生命周期的下一步是将一个SQL转换成一个可执行计划,MySQL再按照这个计划和存储引擎进行交互 语法解析器和预处理 首先,MySQL通过关键词将SQL语句进行解析,并生成一颗对应的"解 ...
- 经典面试题:从 URL 输入到页面展现到底发生什么?
前言 打开浏览器从输入网址到网页呈现在大家面前,背后到底发生了什么?经历怎么样的一个过程?先给大家来张总体流程图,具体步骤请看下文分解! 本文首发地址为GitHub 博客,写文章不易,请多多支持与关注 ...
- jQuery each和js forEach用法比较
本文实例分析了jQuery each和js forEach用法.分享给大家供大家参考,具体如下: 对于遍历数组的元素,js代码和jquery都有类似的方法,js用的是forEach而jquery用的是 ...
- Windows中nvm使用
介绍:在两个项目且使用的node版本不一样时,维护多个版本的node, 安装:下载安装目录:https://github.com/coreybutler/nvm-windows/releasesnvm ...
- 惊喜,重磅福利!免费开源ERP-企业信息化金矿
Odoo,以前叫OpenERP,是比利时Odoo S.A.公司开发的一个企业应用软件套件,开源套件包括一个企业应用快速开发平台,以及几千个Odoo及第三方开发的企业应用模块.Odoo适用于各种规模的企 ...
- asp.net core 2.1 部署IIS(win10/win7)
asp.net core 2.1 部署IIS(win10/win7) 概述 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器 ...
- HDFS副本放置策略
1.第一个副本放置在上传文件的DataNode上,如果是集群外提交,则随机挑选一个磁盘不太满,CPU不太忙的节点. 2.第二个副本放置在与第一个副本不同的机架上. 3.第三个副本放置在与第二个副本同机 ...
- MySQL 修改账号的IP限制条件
今天遇到一个需求:修改MySQL用户的权限,需要限制特定IP地址才能访问,第一次遇到这类需求,结果在测试过程,使用更新系统权限报发现出现了一些问题, 具体演示如下. 下面测试环境为MySQL 5.6. ...