3.2 Linux文件和目录管理课后练习题

3.2 Linux文件和目录管理课后练习题

1.命令rmdir -p用来删除一串目录,比如rmdir -p /tmp/test/1/2/3。如果/tmp/1/2/目录下除了3目录外还有个4目录,4目录里还有5目录,那么是否可以成功删除?用命令rmdir -p 删除一个不存在的目录时,是否会报错呢?
首先我先创建题目中的目录:

[root@zl_cloud ~]# mkdir -p /tmp/test/1/2/3
[root@zl_cloud ~]# cd /tmp/test/1/2
[root@zl_cloud 2]# mkdir 4
[root@zl_cloud 2]# cd  4
[root@zl_cloud 4]# mkdir 5
[root@zl_cloud 4]#

删除目录:

[root@zl_cloud ~]# rmdir -p /tmp/test/1/2/3
rmdir: 删除目录 "/tmp/test/1/2" 失败: 目录非空
[root@zl_cloud ~]#

删除一个不存在的目录:

[root@zl_cloud ~]# cd /tmp
[root@zl_cloud tmp]# ll
总用量 4
-rwx------. 1 root root 827 3月   4 20:23 ks-script-OjQKl1
drwxr-xr-x. 3 root root  14 3月   5 04:45 test
-rw-------. 1 root root   0 3月   4 20:11 yum.log
[root@zl_cloud tmp]# rmdir -p /tmp/111
rmdir: 删除 "/tmp/111" 失败: 没有那个文件或目录
[root@zl_cloud tmp]#

2.删除一个目录或者文件时,在删除之前会先询问我们是否删除,如果直接回车,是否 能删除呢? 如果输入的不是y也不是n,会发生什么呢?

[root@zl_cloud ~]# mkdir -p test
[root@zl_cloud ~]# ll
总用量 4
-rw-------. 1 root root 955 3月   4 20:23 anaconda-ks.cfg
drwxr-xr-x. 2 root root   6 3月   5 04:58 test
[root@zl_cloud ~]# rm -r test
rm:是否删除目录 "test"?     //我输入了回车,当然后面试了空格也不行
[root@zl_cloud ~]# ll
总用量 4
-rw-------. 1 root root 955 3月   4 20:23 anaconda-ks.cfg
drwxr-xr-x. 2 root root   6 3月   5 04:58 test
[root@zl_cloud ~]# rm -r test
rm:是否删除目录 "test"?y
[root@zl_cloud ~]#

rm -rf命令后面不能加“/”,否则会把系统文件全部删除!!

3.如何创建一串目录(如/home/1/2/3/4)?

[root@zl_cloud ~]# mkdir -p /home/1/2/3/4
[root@zl_cloud ~]# 

4.使用mv命令时,如果目标文件不是目录,但该文件存在,会怎么样?

[root@zl_cloud ~]# touch test //目标文件
[root@zl_cloud ~]# touch zl  //源文件
[root@zl_cloud ~]# ll
总用量 4
-rw-------. 1 root root 955 3月   4 20:23 anaconda-ks.cfg
-rw-r--r--. 1 root root   0 3月   5 05:29 test
-rw-r--r--. 1 root root   0 3月   5 05:29 zl
[root@zl_cloud ~]# mv zl test
mv:是否覆盖"test"? y
[root@zl_cloud ~]# ll
总用量 4
-rw-------. 1 root root 955 3月   4 20:23 anaconda-ks.cfg
-rw-r--r--. 1 root root   0 3月   5 05:29 test
[root@zl_cloud ~]# 

Mv 【】【源文件或目录】【目标文件或目录】;若本身文件就存在,则会询问是否覆盖文件;若本身文件不存在,则相当于把文件重命名移动到新的地方。

5.使用less命令查看文件/etc/passwd,搜索一下共出现了几个root?按哪个键可以向 上/向下逐行移动?

[root@zl_cloud ~]# less /etc/passwd

3.2 Linux文件和目录管理课后练习题_第1张图片
按/键+root就可以搜索关于root的字符串,按回车就可以查找了,按n键显示下一个。空格翻页;j键向下移动一行;k键向上移动。

6.为什么目录必须要有x权限才可以查看目录下面的文件呢?
因为x权限为可执行文件,没有该权限则不可以对文件夹进行各种操作。

7.如果设置umask为001,那么用户默认创建的目录和文件的权限是什么样子的?
目录最高权限是:777(drwxrwxrwx);文件最高权限是:666(-rw-rw-rw-)。
若umask为:001(— --- --x),则

[root@zl_cloud ~]# umask 001  //设置umask为001
[root@zl_cloud ~]# umask
0001
[root@zl_cloud ~]# mkdir dir1  //创建目录
[root@zl_cloud ~]# touch test1  //创建文件
[root@zl_cloud ~]# ls -ld dir1
drwxrwxrw-. 2 root root 6 3月   5 05:33 dir1
[root@zl_cloud ~]# ls -ld test1
-rw-rw-rw-. 1 root root 0 3月   5 05:34 test1
[root@zl_cloud ~]# 

具体规则为:r(可读)=4,w(可写)=2,x(可执行)=1,-(没有这 个权限)=0
用户默认创建的目录权限为:rwxrwxrwx - --------x=rwxrwxrw- =(776)
用户默认创建的文件权限为:-rw-rw-rw - --------x=-rw-rw-rw =(666)

8.用find找出 /var/ 目录下最近一天内变更的文件,再用 find找出 /root/目录下一 小时内变更的文件。
一天内:

# find  /var/  -mtime -1

一小时:

# find  /root/  -mmin -60

(太多了我就不放图了)!

具体参照我上一篇所写的文件查找。
3.2 Linux文件和目录管理课后练习题_第2张图片

9.用find找出/etc/目录下一年内从未变更过的文件。

# find /etc/ -mtime -365

10.为什么硬链接不能链接目录?硬链接的文件是否占用空间大小?硬链接文件是否可 以跨分区创建?
①符号连接(软链接)到一个目录只是建立了一个新文件,而这个连接文件相当于原目录的“快捷方式”。但是硬链接本身并不是一个实际的文件,只是在它所在的目录下多了一条文件名记录而已,这个文件名对应到原文件的inode,记住,它是和inode关联的,而inode是和文件的内容相关,所以一个硬链接只能对应一个文件。如果想让一个硬链接到一个目录,就只能对这个目录下的所有文件都建立硬连接,如果将来这个目录下又有新文件了,就又要创建硬连接,所以说对目录建立硬连接太复杂了,Linux目前是不支持硬连接目录的,这是硬链接的原理所决定的。(摘自百度)
②不占用;
③不可以,因为不同分区有相同的inode;

11.Linux系统里,分别用什么符号表示纯文本文件、二进制文件、目录、链接文件、块 设备以及字符设备?
上一篇博客整理有写到…
3.2 Linux文件和目录管理课后练习题_第3张图片

12.如何把dira目录以及该目录下的所有文件和目录修改为所有者为userl、所属组为users?

[root@zl_cloud ~]# mkdir dira  //创建目录
[root@zl_cloud ~]# cd dira
[root@zl_cloud dira]# touch test  //创建目录下的文件
[root@zl_cloud dira]# cd
[root@zl_cloud ~]# groupadd users  //创建组
groupadd:“users”组已存在
[root@zl_cloud ~]# useradd user1  //创建所有者
[root@zl_cloud ~]# chown -R user1:users dira
[root@zl_cloud ~]# ls -ld dira
drwxrwxrw-. 2 user1 users 17 3月   5 05:37 dira
[root@zl_cloud ~]# ls -ld dira/test
-rw-rw-rw-. 1 user1 users 0 3月   5 05:37 dira/test
[root@zl_cloud ~]#

13.Linux系统中默认目录的权限是什么?文档的权限是什么?分别用三个数字表示。我们可以通过修改umask的值更改目录和文档的默认权限值,那么如何通过umask的值得到默认权限值呢?
①默认目录的权限:755;默认文档的权限:644。
②目录默认权限=(rwxrwxrwx)-(umask),文件默认权限=(rw-rw-rw-)-(umask)。
目录最高权限是:777(drwxrwxrwx);文件最高权限是:666(-rw-rw-rw-)。一般使用者umask为002,root的umask为022。

14.修改dirb目录的权限,使其所有者可读、可写且可执行,所属组可读且可执行,其他用户不 可读、不可写也不可执行,使用什么命令呢?

[root@zl_cloud ~]# mkdir dirb
[root@zl_cloud ~]# chmod 750 dirb
[root@zl_cloud ~]# ls -ld dirb
drwxr-x---. 2 root root 6 3月   5 05:42 dirb
[root@zl_cloud ~]# 

15.如何使文件只能写且不能删除呢?如何使文件不能被删除、重命名、设定链接、写入且新增数据呢?

[root@zl_cloud ~]# touch test
[root@zl_cloud ~]# chattr +a test
[root@zl_cloud ~]# rm -rf test
rm: 无法删除"test": 不允许的操作

16.Linux下的一个点“.”和两个点“…”分别表示什么?
“.”:表示当前目录;

[root@zl_cloud ~]# mkdir -p /tmp/1
[root@zl_cloud ~]# cd /tmp
[root@zl_cloud tmp]# cd 1
[root@zl_cloud 1]# Cd .
[root@zl_cloud 1]#

“…”:当前目录的上一级目录;

[root@zl_cloud 1]# cd ..
[root@zl_cloud tmp]#

17.cd - 表示什么含义?
cd -:表示返回上级目录;

[root@zl_cloud tmp]# cd -
/tmp/1
[root@zl_cloud 1]# 

18.用ls命令查看目录或者文件时,第2列的数值表示什么意思?如果一个目录的第2 列的值为3,那么这个3是如何得到的呢?
①第二列的数值表示使用了该文件或目录inode的文件或者目录数

19.如果系统中没有locate命令,我们需要安装哪个软件包?
初次使用locate命令会 报错can not open /var/lib/mlocate/mlocate.db:No such file or directory, 我们需要如何做呢?

[root@zl_cloud ~]# locate test
-bash: locate: 未找到命令
[root@zl_cloud ~]# 

①安装mlocate软件包;

[root@zl_cloud ~]# yum install -y mlocate

②(下载完成后)报错是因为.db文件没有生成,使用updatedb命令就可以了

[root@zl_cloud ~]# locate test
locate: 无法执行 stat () `/var/lib/mlocate/mlocate.db': 没有那个文件或目录
[root@zl_cloud ~]# updatedb
[root@zl_cloud ~]# locate test
/test
/boot/grub2/i386-pc/cmdline_cat_test.mod
/boot/grub2/i386-pc/cmostest.mod
/boot/grub2/i386-pc/div_test.mod
/boot/grub2/i386-pc/exfctest.mod
......

20.当复制一个文件时,如果目标文件存在会询问我们是否覆盖,如何做就不再询问了呢?

[root@zl_cloud ~]# touch test1 test2
[root@zl_cloud ~]# cp test1 test2
cp:是否覆盖"test2"? 
[root@zl_cloud ~]# /bin/cp test1 test2
[root@zl_cloud ~]# 

21.假如一个文件内容一直在增加,如何动态显示这个文件的内容呢?

[root@zl_cloud ~]# tail -f test1

22.更改文件读写执行权限的命令是什么?如何把一个目录下的所有文件(不含目录的权限改为644?
①chmod;

[root@zl_cloud ~]# mkdir -p dira
[root@zl_cloud ~]# cd dira
[root@zl_cloud dira]# touch test1 test2
[root@zl_cloud dira]# cd
[root@zl_cloud ~]# find dira/ -type f | xargs chmod 664
[root@zl_cloud ~]# cd dira
[root@zl_cloud dira]# ll
总用量 0
-rw-rw-r--. 1 user1 users 0 3月   5 05:37 test
-rw-rw-r--. 1 root  root  0 3月   5 05:53 test1
-rw-rw-r--. 1 root  root  0 3月   5 05:53 test2
[root@zl_cloud dira]# 

23.如何查看当前用户的目录?

[root@zl_cloud ~]# echo $HOME
/root
[root@zl_cloud ~]# 

24.假如一个目录可以让任何人可写,那么如何能做到该目录下的文件只允许文件的所有者更改?

[root@zl_cloud ~]# mkdir -p dira
[root@zl_cloud ~]# cd dira
[root@zl_cloud dira]# touch test
[root@zl_cloud dira]# cd
[root@zl_cloud ~]# chmod o+t dira  //这个我是百度的,我也不大懂
[root@zl_cloud ~]#

25.简述软链接和硬链接的区别。
软链接就是源文件的快捷方式,文件删除后,软链接自动失效了;硬链接就是多个文件共用一个inode,删除一个文件,不影响其他的文件;

26.cat a.txt会更改a.txt的什么时间?chmod 644 a.txt会更改a.txt的什么时间?Vim呢?直接touch呢?
cat会更改atime,chmod会更改ctime,vim会更改atime,ctime,mtime,touch也是更改atime,ctime,mtime;

你可能感兴趣的:(3.2 Linux文件和目录管理课后练习题)