linux中对查看目录和文件操作的一些命令



什么是目录,什么是文件??

   目录

linux系统中的目录,就相当于windows中的文件夹,这样理解会比较简单点。

什么是文件??

   文件

linux系统中的文件,它并不像windows中的文件一样,它不是以文件后缀来区分文件类型的,但是在linux中是存在的文件后缀的,如.sh表示是一个shell文件,以点开头文件可以表示隐藏文件,这些都是方便管理者去管理。

 

什么是当前目录??

     当前目工作目录

每个shell和系统进程都有一个当前的工作目录CWDcurrent work directory

如何显示当前shell的绝对路径呢呢?用pwd命令。英文printing working directory

  spacer.gif

 

但又有一个新问题什么事绝对路径呢?

 

绝对路径:是以根开始的,表现为斜杠开始,它是一条完整的位置路径,可用于任何想指定的一个文件

相对路径:不是以根开始,指定与相对当前工作目录或是某个位置,可以作为一个简短的形式的文件指定

如何进入其他目录呢??

   cd 改变目录

       cd 绝对路径、相对路径

    spacer.gif

 

cd 不跟任何参数,默认是切换到用户的家目录,root用户的家目录是/root,

而普通用户的家目录是/home/用户名

spacer.gif 

 

 

cd 切换至以前的目录(上一次的目录)如果反复的使用cd- 会在当前目录和        上次目录之间来回的切换

 

其实是变量PWD 保存了当前的目录路径

                  变量OLDPWD保存了当一次目录的路径

spacer.gif 

如何列出目录下的文件和目录呢??

ls和相关选项

ls 命令[option] [文件 或是 目录]

ls -a 列出所有文件包括隐藏文件

ls -l 显示额外的信息(列出目录下的目录和文件的详细信息)

ls -R 目录的递归通过(列出目录下文件的同时列出了子目录信息,目录的递归就是一层一层的自动查询)

ls -ld 目录和符号链接信息

ls -1(是数字1不是l)文件分行显示

ls -S按从大到小排序

ls -u配合-t选项,显示并按atime从新到旧排序

ls -U不排序按目录存放顺序显示

ls -d 不显子目录信息

ls -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行   

文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs“=”表示套

接字(sockets)

ls -r 对目录反向排序。

 

 

  如何快速查找没有记住全部文件名的目录或文件呢?

       用通配符

*匹配零个或多个字符

?匹配任何单字符

~当前用户家目录

~username

~+当前工作目录

~—前一个工作目录

[0--9]匹配一个数字范围

[a-z] 大写和小写字母

[A-Z]大写或是小写

注意:如果涉及到目录用cd命令来测试cd ~username  ~+当前一个工作

              目录 ~-表示上一个工作目录  

[wxc] 匹配列表中的任何的一个字符;(注意[]wxc这三个字母中的任何 一个都可以)

[^wxc]匹配列表中的所有 字符以外的字符

 

预定义的字符类#man 7 glob

[:digit:]    任意数字。相当于0-9

[:lower:}   任意小写字母

[:upper:]   任意大写字母

[:alpha:]   任意大小写字母

[:space:]   空格

[:punct:]   标点符号

[[:alnum:]  任意字数或字母]

 

练习题:

1.显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录

spacer.gif 

spacer.gif 

2.显示/etc目录下以任意一个数字开头,后面跟了一个非数字结尾的文件或目录

spacer.gif 

3.显示/etc/目录下以非字母开头,后面跟了一个字母及其它任意长度任意总府的文件或目录

spacer.gif 

4.显示/etc目录下所有以m开头以非数字结尾的文件或目录

spacer.gif 

5.显示/etc/目录下所有以 .d 结尾的文件或目录

spacer.gif 

6.显示/etc目录下所有以 .conf结尾,且以m n  rp开头的文件或是目录

spacer.gif 

 

2.课后作业

 1.列出/tmp 下的隐藏文件

spacer.gif 

 2.只列出/etc 下的目录

spacer.gif