1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
Linux下涉及到目录管理命令,主要有 mkdir,rmdir
Linux下经常使用的文件管理命令,主要有cp,mv,rm
cp
这个命令的作用是可以复制文件或目录,且支持多个文件同时复制。
语法格式如下:
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE..
单源复制:cp [OPTION]…SOURCE DEST
如果dest文件不存在则创建文件,并复制源文件数据流到DEST文件中(这里源,目的都是文件)
如果dest文件存在,则复制源文件数据覆盖目标文件(这里源,目标都是文件)
如果dest是一个目录,则在dest目录中创建相同的文件和内容(这里源是文件,目的是目录)
如果源是目录,需要加选项-t,这这时候dest必须是目录,将其源目录复制到目标目录下!
多源复制:cp [OPTION]… SOURCE… DIRECTORY
多源复制的目标必须是目录
可以复制多个文件,到同一个目录下。
常用选项option:
-i:覆盖之前提醒用户确认。cp的别名就是cp -i
-f:强制覆盖目标文件
-r:递归复制目录,复制目录和目录中的内容到目标位置
-d:复制一个符号链接本身,不会其指向的真正的源文件。
-a: 表示连源文件源文件属性都复制过去
mv
mv和cp使用方式基本一样,只是mv命令完成cp操作之后,会把原来的source文件删除。
注意:mv一个目录时不需要加-r选项即可实现递归移动
rm
rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
状态返回值
bash通过状态返回值来输入命令的执行结果
成功:0
失败:1-255
命令执行完成后,状态返回值保存在bash的特殊变量$?中
命令行展开
~:自动展开为用户的家目录,或指定用户的家目录
{}:可承载一个逗号分隔的路径列表,并能将其展开为多个路径
3、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
mkdir/tmp/{a,b}_{c,d}
(2)、创建/tmp/mylinux目录下的:
mylinux/
├── bin
├── boot
│ └── grub
├── dev
├── etc
│ ├── rc.d
│ │ └── init.d
│ └── sysconfig
│ └── network-scripts
├── lib
│ └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│ └── local
│ ├── bin
│ └── sbin
└── var
├── lock
├── log
└── run
mkdir –pv/tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/{local/{bin,sbin}},var/{lock,log,run}}
4、 文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的,元数据就是数据的数据。
Linux中指文件的属性、大小、创建时间、访问时间、属主属组等信息。
使用stat可以查看以下三个时间戳:
Access time: 访问时间,简写为atime,读取文件内容
Modify time: 修改时间,简写为mtime,改变文件内容(数据)
Change time: 改动时间,简写为ctime,元数据发生改变
使用touch命令便可以更改文件的时间戳信息
参数如下:
-a 只更改访问时间
-c 不创建任何文件
-m 只更改修改时间
-t 修改时间戳为指定时间 [[CC]YY]MMDDhhmm [.SS]
5、 如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
可使用alias命令来定义命令的别名
如要在命令中引用另外一个命令的执行结果可以有以下两种方式
① 管道命令 |
COMMAND1 | COMMAND2 | COMMAND3 |...
② 结果引用
COMMAND2 $( COMMAND1)
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
ls –d /var/l*[:digit:]*[:lower:]
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
ls –d /etc/[:digit:]*[^[:digit:]]或者 ls –d /etc/[0-9]*[^0-9]
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
ls –d /etc/ [^[:alpha:]] [[:alpha:]]* 或者 ls –d /etc/[^a-z][a-z]*
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
创建文件:touch /tmp/tfile-$(date+%Y-%m-%d-%H-%M-%S)
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
cp –a /etc/p*[^0-9] /tmp/mytest1
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
cp –a /etc/*.d /tmp/mytest2
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
cp –a /etc/[l,m,n]*.conf /tmp/mytest3