Linux基本命令之文件及目录命令01

在这里插入图片描述

1 开胃

在讨论文件以及目录命令之前,先需要了解文件的一些基本属性。

在 Linux 中我们可以使用 ll 或者 ls –l 命令来显示一个文件的属性以及文件所属的用户和组

[root@root /]# ll
total 68
-rw-r--r--   1 root root     0 Jul  7 17:13 9000
lrwxrwxrwx.  1 root root     7 Apr 26  2020 bin -> usr/bin
dr-xr-xr-x.  5 root root  4096 Apr 26  2020 boot
lrwxrwxrwx.  1 root root     8 Apr 26  2020 sbin -> usr/sbin
drwxr-xr-x   6 root root  4096 Jul  3 23:18 www

其中第一个位置表示文件类型,当

  • d 则表示是目录。
  • - 则表示是文件。
  • l 则表示是链接文档(link file);
  • 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

接下来的9字符,分别以三个为一组,且均为 rwx 的三个参数的组合,表示文件的权限。其中,前三个字符为属主权限,中间三个字符为属组权限,最后三个字符为其他用户权限, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 代替

例如:drwxr-xr-x 6 root root 4096 Jul 3 23:18 www

文件类型属主权限属组权限其他用户权限
0123456789
dr w xr - xr - x
目录文件读 写 执行读 写读 写
代表字符权限对文件的含义对目录的含义分数
r读权限可以查看文件可以列出目录的内容4
w写权限可以修改文件可以在目录中创建、删除文件2
x执行权限可以执行文件可以进入目录1

6: 代表的意思是文件别引用了几次,通常设置有一个计数器.

root:代表文件的创建者

root:文件所属的组。

4096:文件大小。

Jul 3 23:18:文件创建或者左后一次修改的时间。

www:文件的名字。

2 文件目录命令

2.1、 cd:切换目录

语法:

cd [参数] [切换的目录]

cd ~ 回到根目录

cd . 当前目录

cd … 返回上一级目录

其中:参数主要有两种,一种是相对路径,一种是绝对路径。

绝对路径:使用起来比较麻烦,文件的路径必须的很清楚,否则会找不到,相对来说写起来比较臃肿麻烦.

相对路径:使用起来比较方便,经常使用。

案例:

1.进入根目录(\)。

[root@root ~]# cd /
[root@root /]# 

2.返回上一级目录。

[root@root home]# cd ..
[root@root /]# 

2.2、 ls:显示目录以及文件名

语法:

ls [选项] [参数] [文件名或目录]

其中: [文件名或目录]是指指定目录(文件)下的子目录(子文件)

选项与参数:

  • -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
  • -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
  • -l :长数据串列出,包含文件的属性与权限等等数据;(常用)
  • -r 将文件以相反次序显示(原定依英文字母次序)
  • -t 将文件依建立时间之先后次序列出

案例:

1.显示当前目录下的所有目录。

[root@root ~]# cd /
[root@root /]# ls -l
total 68
-rw-r--r--   1 root root     0 Jul  7 17:13 9000
lrwxrwxrwx.  1 root root     7 Apr 26  2020 bin -> usr/bin
dr-xr-xr-x.  5 root root  4096 Apr 26  2020 boot
drwxr-xr-x  19 root root  2980 Jul  4 13:18 dev
drwxr-xr-x. 83 root root  4096 Jul  7 16:34 etc
drwxr-xr-x.  7 root root  4096 Jul  8 16:09 home
lrwxrwxrwx.  1 root root     7 Apr 26  2020 lib -> usr/lib
lrwxrwxrwx.  1 root root     9 Apr 26  2020 lib64 -> usr/lib64
drwx------.  2 root root 16384 Apr 26  2020 lost+found
drwxr-xr-x.  2 root root  4096 Apr 11  2018 media
drwxr-xr-x.  2 root root  4096 Apr 11  2018 mnt
drwxr-xr-x.  3 root root  4096 Jul  7 16:34 opt
drwxr-xr-x   2 root root  4096 Jul  3 23:28 patch
dr-xr-xr-x  98 root root     0 Jul  4 13:15 proc
dr-xr-x---.  7 root root  4096 Jul 12 23:16 root
drwxr-xr-x  27 root root   780 Jul  7 16:47 run
lrwxrwxrwx.  1 root root     8 Apr 26  2020 sbin -> usr/sbin
drwxr-xr-x.  2 root root  4096 Apr 11  2018 srv
dr-xr-xr-x  13 root root     0 Jul  4 13:26 sys
drwxrwxrwt.  9 root root  4096 Jul 26 03:41 tmp
drwxr-xr-x. 14 root root  4096 Jul  3 20:56 usr
drwxr-xr-x. 19 root root  4096 Jul  3 23:26 var
drwxr-xr-x   6 root root  4096 Jul  3 23:18 www

2.显示指定目录下所有的目录,包括隐藏目录。

[root@root /]# ls -al
total 76
dr-xr-xr-x. 20 root root  4096 Jul  7 17:13 .
dr-xr-xr-x. 20 root root  4096 Jul  7 17:13 ..
-rw-r--r--   1 root root     0 Jul  7 17:13 9000
-rw-r--r--   1 root root     0 Apr 26  2020 .autorelabel
lrwxrwxrwx.  1 root root     7 Apr 26  2020 bin -> usr/bin
dr-xr-xr-x.  5 root root  4096 Apr 26  2020 boot
drwxr-xr-x  19 root root  2980 Jul  4 13:18 dev
drwxr-xr-x. 83 root root  4096 Jul  7 16:34 etc
drwxr-xr-x.  7 root root  4096 Jul  8 16:09 home
lrwxrwxrwx.  1 root root     7 Apr 26  2020 lib -> usr/lib
lrwxrwxrwx.  1 root root     9 Apr 26  2020 lib64 -> usr/lib64
drwx------.  2 root root 16384 Apr 26  2020 lost+found
drwxr-xr-x.  2 root root  4096 Apr 11  2018 media
drwxr-xr-x.  2 root root  4096 Apr 11  2018 mnt
drwxr-xr-x.  3 root root  4096 Jul  7 16:34 opt
drwxr-xr-x   2 root root  4096 Jul  3 23:28 patch
dr-xr-xr-x  98 root root     0 Jul  4 13:15 proc
dr-xr-x---.  7 root root  4096 Jul 12 23:16 root
drwxr-xr-x  27 root root   780 Jul  7 16:47 run
lrwxrwxrwx.  1 root root     8 Apr 26  2020 sbin -> usr/sbin
drwxr-xr-x.  2 root root  4096 Apr 11  2018 srv
dr-xr-xr-x  13 root root     0 Jul  4 13:26 sys
drwxrwxrwt.  9 root root  4096 Jul 26 03:41 tmp
drwxr-xr-x. 14 root root  4096 Jul  3 20:56 usr
drwxr-xr-x. 19 root root  4096 Jul  3 23:26 var
drwxr-xr-x   6 root root  4096 Jul  3 23:18 www

3.只显示目录本身,而不是列出目录内的文件数据。

#[root@root ~]# ls /  等价于
[root@root /]# ls
9000  bin  boot  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  patch  proc  root  run  sbin  srv  sys  tmp  usr  var  www

4.显示当前目录下所有文件的详细信息。

[root@root ~]# cd /
[root@root /]# ls -l
total 68
-rw-r--r--   1 root root     0 Jul  7 17:13 9000
lrwxrwxrwx.  1 root root     7 Apr 26  2020 bin -> usr/bin
dr-xr-xr-x.  5 root root  4096 Apr 26  2020 boot
drwxr-xr-x  19 root root  2980 Jul  4 13:18 dev
drwxr-xr-x. 83 root root  4096 Jul  7 16:34 etc
drwxr-xr-x.  7 root root  4096 Jul  8 16:09 home
lrwxrwxrwx.  1 root root     7 Apr 26  2020 lib -> usr/lib
lrwxrwxrwx.  1 root root     9 Apr 26  2020 lib64 -> usr/lib64
drwx------.  2 root root 16384 Apr 26  2020 lost+found
drwxr-xr-x.  2 root root  4096 Apr 11  2018 media
drwxr-xr-x.  2 root root  4096 Apr 11  2018 mnt
drwxr-xr-x.  3 root root  4096 Jul  7 16:34 opt
drwxr-xr-x   2 root root  4096 Jul  3 23:28 patch
dr-xr-xr-x  98 root root     0 Jul  4 13:15 proc
dr-xr-x---.  7 root root  4096 Jul 12 23:16 root
drwxr-xr-x  27 root root   780 Jul  7 16:47 run
lrwxrwxrwx.  1 root root     8 Apr 26  2020 sbin -> usr/sbin
drwxr-xr-x.  2 root root  4096 Apr 11  2018 srv
dr-xr-xr-x  13 root root     0 Jul  4 13:26 sys
drwxrwxrwt.  9 root root  4096 Jul 26 03:41 tmp
drwxr-xr-x. 14 root root  4096 Jul  3 20:56 usr
drwxr-xr-x. 19 root root  4096 Jul  3 23:26 var
drwxr-xr-x   6 root root  4096 Jul  3 23:18 www

2.3、 pwd:显示当前目录

语法:

pwd [参数]

选项与参数:

  • -P :显示出绝对的路径。
  • -L:目录链接时,输出连接路径。

案例:

1.输出当前目录。

[root@root /]# cd /bin
[root@root bin]# pwd
/bin

2.输出当前的真实路径,即物理路径。

[root@root bin]# pwd -P
/usr/bin

2.4、 mkdir:新建一个目录

语法:

mkdir [参数] 目录名

选项与参数:

  • -m :配置文件的权限。
  • -p :递归创建目录。

**注:**1.想要创建目录,必须要有权限。

​ 2.如果创建的目录存在,则会创建失败。

​ 3.当想要在不存在的目录下创建目录,一定要加上参数p,否则会报错,找不到该目录。

​ 4.当直接使用mkdir创建文件时,此时创建的目录就在当前路径下。

案例:

1.在 /home/itbestboy/下创建一个test01目录,并且赋予一定的权限。

#1.进入/home/itbestboy/目录
[root@root bin]# cd /home/itbestboy/
[root@root itbestboy]# ls
apache-tomcat-9.0.48  apache-tomcat-9.0.48.tar.gz  jdk-8u221-linux-x64.rpm
#2.创建目录
[root@root itbestboy]# mkdir -m 711 test01
[root@root itbestboy]# ls
apache-tomcat-9.0.48  apache-tomcat-9.0.48.tar.gz  jdk-8u221-linux-x64.rpm  test01
[root@root itbestboy]# cd /

#1.直接创建目录
[root@root /]# mkdir -m 711 /home/itbestboy/text01
[root@root /]# cd /home/itbestboy/
[root@root itbestboy]# ls
apache-tomcat-9.0.48  apache-tomcat-9.0.48.tar.gz  jdk-8u221-linux-x64.rpm  test01  text01
[root@root itbestboy]# ls -ll
total 186536
drwxr-xr-x 9 root root      4096 Jul  3 22:25 apache-tomcat-9.0.48
-rw-r--r-- 1 root root  11489338 Jul  3 20:49 apache-tomcat-9.0.48.tar.gz
-rw-r--r-- 1 root root 179505388 Jul  3 20:50 jdk-8u221-linux-x64.rpm
drwx--x--x 2 root root      4096 Jul 27 00:11 test01
drwx--x--x 2 root root      4096 Jul 27 00:12 text01
[root@root itbestboy]# 

2.在 /home/itbestboy/下创建test02/test03/test04目录,其他默认。

#没有使用参数p,会报错
[root@root itbestboy]# mkdir test02/test03/test04
mkdir: cannot create directory ‘test02/test03/test04’: No such file or directory

#使用p参数,递归创建
[root@root itbestboy]# mkdir -p test02/test03/test04
[root@root itbestboy]# ls
apache-tomcat-9.0.48  apache-tomcat-9.0.48.tar.gz  jdk-8u221-linux-x64.rpm  test01  test02  text01
#进入test02
[root@root itbestboy]# cd test02/
[root@root test02]# ls
test03
#进入test03
[root@root test02]# cd test03/
[root@root test03]# ls
test04
[root@root test03]# cd test04/
[root@root test04]# 

2.5、 rmdir:删除目录

语法:

rmdir [参数] 目录名称

选项与参数:

  • **-p :**递归删除,包括空目录。

案例

1.删除上面创建的text01目录。

[root@root itbestboy]# rmdir text01
[root@root itbestboy]# ls
apache-tomcat-9.0.48  apache-tomcat-9.0.48.tar.gz  jdk-8u221-linux-x64.rpm  test01  test2

2.删除上面创建的test04目录

[root@root itbestboy]# rmdir -p test02/test03/test04
[root@root itbestboy]# ls
apache-tomcat-9.0.48  apache-tomcat-9.0.48.tar.gz  jdk-8u221-linux-x64.rpm  test01

2.6、 touch;创建一个空文件

语法:

touch 文件名

**注:**当创建一个文件时,如果此文件已经存在,此时不会报错。

案例

创建一个test.java文件

[root@root itbestboy]# touch test.java
[root@root itbestboy]# ls -lh
total 183M
drwxr-xr-x 9 root root 4.0K Jul  3 22:25 apache-tomcat-9.0.48
-rw-r--r-- 1 root root  11M Jul  3 20:49 apache-tomcat-9.0.48.tar.gz
-rw-r--r-- 1 root root 172M Jul  3 20:50 jdk-8u221-linux-x64.rpm
drwx--x--x 2 root root 4.0K Jul 27 00:11 test01
-rw-r--r-- 1 root root   20 Jul 27 00:43 test.java

2.7、 cp:复制目录或文件

语法:

cp [参数] [原文件或原目录] [目标文件或目标目录]

选项与参数:

  • **-d:**若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
  • **-l:**进行硬式连结(hard link)的连结档创建,而非复制文件本身;
  • **-p:**连同文件的属性一起复制过去,而非使用默认属性(备份常用);
  • **-r:**递归持续复制,用于目录的复制行为;(常用)

**注:**1)在复制目录时一定要加参数 r。

​ 2)当在复制时加参数p时,此时复制了原文件的属性包括修改时间(不是复制后的系统时间,而是原来的修改时间),当不加p时复制后文件的修改时间为系统时间。

案例

1.将/home/itbestboy 下的文件test.java拷贝到/home/itbestboy/test01/目录下

#加参数 p
[root@root itbestboy]# cp -p test.java test01/
[root@root itbestboy]# cd test01/
[root@root test01]# ls
test.java
[root@root test01]# cat test.java 
hello everyone!!!!!
#查看修改时间 
[root@root test01]# ls -lh
total 4.0K
-rw-r--r-- 1 root root 20 Jul 27 00:43 test.java
#不加参数 p
[root@root itbestboy]# cp  test.java test01/test01.java
[root@root itbestboy]# cd test01/
[root@root test01]# ls -lh
total 8.0K
-rw-r--r-- 1 root root 20 Jul 27 01:02 test01.java
-rw-r--r-- 1 root root 20 Jul 27 00:43 test.java

2.将/home/itbestboy 下的目录test01拷贝到/home/itbestboy/test02目录下

[root@root itbestboy]# cp -r test01/ test02/
[root@root itbestboy]# cd test02/
[root@root test02]# ls
test01  test01.java  test.java

2.8、 mv:剪切目录或文件

语法:

mv [参数] [原文件或目录] [目标文件或目录]

参数说明

  • -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
  • -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
  • -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
  • -n: 不要覆盖任何已存在的文件或目录。
  • -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
命令格式运行结果
mv source_file(文件) dest_file(文件)将源文件名 source_file 改为目标文件名 dest_file
mv source_file(文件) dest_directory(目录)将文件 source_file 移动到目标目录 dest_directory 中
mv source_directory(目录) dest_directory(目录)目录名 dest_directory 已存在,将 source_directory 移动到目录名 dest_directory 中;目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory
mv source_directory(目录) dest_file(文件)出错

注: mv命令又叫做重命名命令,即可以对文件目录重新命名。

案例

1.将/home/itbestboy 目录下的文件test.java更改为hello.java

[root@root itbestboy]# mv test.java hello.java
[root@root itbestboy]# ls -lh
total 183M
-rw-r--r-- 1 root root   20 Jul 27 00:43 hello.java
drwxr-xr-x 9 root root 4.0K Jul  3 22:25 apache-tomcat-9.0.48
-rw-r--r-- 1 root root  11M Jul  3 20:49 apache-tomcat-9.0.48.tar.gz
-rw-r--r-- 1 root root 172M Jul  3 20:50 jdk-8u221-linux-x64.rpm
drwx--x--x 2 root root 4.0K Jul 27 01:13 test01
drwxr-xr-x 3 root root 4.0K Jul 27 01:15 test02

2.将/home/itbestboy/test01 目录下的文件test.java移动到/home/itbestboy/test02目录下

#分别查看test01 test02目录下的文件
[root@root itbestboy]# cd test01/
[root@root test01]# ls
test.java
[root@root test01]# cd ..
[root@root itbestboy]# cd test02
[root@root test02]# ls
test01  test.java

#可以发现有同名的文件,此时使用参数 i 便可以选择是否覆盖目标文件
[root@root itbestboy]# mv -i test01/test.java test02/ 
mv: overwrite ‘test02/test.java’? y

Linux基本命令之帮助命令及日期类命令:-----------------------------------------------------------《加载完成》-------------------------------------------------------

欢迎交流
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值