1、ls –l未能列出下面哪个文件属性?
A、文件占用多少存储空间
B、文件类型
C、文件最后一一次修改时间
D、文件主
A、文件占用多少磁盘空间与文件长度不同,尽管多数时候成正比关系
第一列:文件属性
第二列:文件link数,涉及到此文件的目录项数
第三列、第四列:文件主的名字和组名
第五列:文件大小(不同类型文件内容不同)
第六列:文件最后一次被修改的日期和时间
第七列:文件名
2、查找子目录src下所有后缀为.txt的文件执行dos2unix命令,把文件从Dos格式转换为Linux格式,正确的命令是
A、find src -name *.txt –exec dos2unix { } ;
B、find src -name \*.txt –exec dos2unix {};
C、find src -name "*.txt" –exec dos2unix {} \;
D、find src -name \*.txt -exec dos2unix {};
在-exec中,{}代表遍历到的目标文件的路径名
-name 后匹配选项 必须有引号
分号;是特殊字符,我们想要把它传给find命令,需要加一个
注意{}左右两边都有空格,之间一定没有空格
3、ls与ls *的输出结果是一样的,都是列出当前目录下所有文件和子目录。
×
明显错误,ls是ls指令的普通模式,列出当前目录下的普通文件的文件名
ls * 中的*会在shell中进行替换,替换成可以匹配到的所有的文件名,相当于命令 ls file_name
4、命令cp src/*.[ch]可以把src目录下的C语言源程序文件拷贝到当前目录。
×
这种做法是错误的,首先在shell中,src/*.[ch]会被展开成C语言源程序文件,然后进行cp操作
加入src下有文件 c1.c c2.c,那么上述指令相当于 cp src/c1.c src/c2.c,最终实现的效果是将src/c1.c拷贝到src/c2.c,我们需要理解的是在执行命令前,shell会先将文件通配符展开
可以使用set -x指令查看每次执行的实际指令
5、rm命令的-f选项是force:“强制删除”,可能会将只读文件强制删除不给出任何提示。
√
6、rm命令的–r选项是递归(recursion)的意思,-f是强制删除的意思,rm -rf *命令能把当前目录下的所有文件都删除。
×
错误一:*并不能匹配到所有的文件,例如.profile就不能匹配到
错误二:-f虽然是强制删除的意思,但实际作用是省去了删除时的提示信息,对没有权限删除的文件,它是不会删除的
7、pwd和cd都是shell的内部命令,而且不可能设计成外部命令。
×
cd只能是内部命令,但是pwd是可以设计成外部命令的
8、cp命令的-r选项可以实现增量拷贝,也就是说,如果目的端文件存在并且最后一次修改时间晚于或者等于源端文件,那么这次拷贝动作被忽略,否则,就执行拷贝动作。
×
关于增量拷贝的描述是正确的,但这个选项不是-r而是-u,u是update这个单词的第一个字母
9、使用find命令的-exec选项启用一个命令处理符合条件的文件,比find结合xargs的方式,花费更多的CPU时间。
√
10、tar命令输出文件的后缀必须符合规定,为.tar,.tar.gz, .tgz, .tar.bz2等,否则无法解包。
×
文件名后缀.tar,.tar.gz,.tar.bz2仅仅是惯例,不是系统级强制要求