1、linux上的文件管理类命令有哪些,其常用的使用方法及其相关示例。
文件管理命令:rm mv cp
cp 复制命令
cp 源文件 目标文件
工作机制:如果目标是一个目录,则以源文件同样的名字,创建到目标目录下,再把数据添加进去;如果目标不是一个目录,则先查看以目标命名文件是否存在,如不存在,则以指定的目标文件名,创建一个文件,并将源文件数据导入,如存在,责询问是否覆盖;复制多个源文件时,需要先创建目录,如果目标目录不存在,则失败,目标文件不为目录,也会失败。
常用选项:
-f= force,不询问是否覆盖,直接覆盖。
-a= 会复制源文件的所有元数据。
-r\-R= 递归复制目录
cp /etc/issue /tmp 复制etc下的issue到tmp目录下
cp /etc/issue /tmp/11123 复制etc下的issue到tmp目录下并改名11123
cp /etc/issue /etc/redhat-release /tmp 复制etc下的issue和redhat-release到tmp目录下
cp -r /etc /tmp 复制etc下的所有文件到tmp目录下
mv 改名、剪切命令
mv 源文件 目标文件
工作机制和cp命令相同,只是是剪切文件,如果源文件和目标文件都为同一个目录是则就等于改名。
常用选项:
-i= 交互式
-f= force
rm 删除文件
rm 选项 文件
常用选项:
-r= 递归删除
-f= force 强制执行,不询问
-i= 交互式
rm -rf /tmp/etc 删除/tmp下的etc目录,不询问,强制删除
linux中删除文件后几乎无法找回,建议创建一个目录做为保存不用的文件存储,过一段时间确定不用,在进行删除
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示
bash基础特性: 命令行展开和命令状态返回值
命令行展开 {}
如果要对多个文件进行操作,且都路径相近时,可以用花括号代替写重复的路径;
例:
要查看/etc/issue和/etc/redhat-release 内容
可以写成 cat /etc/issue /etc/redhat-release
使用命令行展开功能
则写成 cat etc/{issue,redhat-release}
命令状态返回值
我们在输入一个命令,例如敲一个命令在屏幕上返回的结果称为命令执行结果,一个命令敲完时,使用$?查看命令返回值 0位成功执行 1-255位执行失败。
例:
ls /
$? 状态返回值为0
lss /
$? 状态返回值不为0 表示上一条命令执行错误
3、请使用命令行展开功能来完成以下练习
(1)、创建/tmp目录下的:a_c,a_d,b_c,b_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
1:
mkdir /tmp/{a,b}_{c,d}
mkdir /tmp/{a_{c,d},b_{c,d}}
2:
mkdir -p /tmp/mylinux/{bin,boot/{grub},dev,etc/{xc.d/init.d,sysconfig/network-scripts},lib/nodules,lib64,proc,sbin,sys,tmp,user/local/{bin,sbin},var/{lock,log,run}}
4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
使用stat命令查看所有元数据
stat /tmp 查看tmp目录的元数据 输出结果为下:
文件:"/tmp"
大小:4096 块:8 IO 块:4096 目录
设备:fd00h/64768d Inode:8388738 硬链接:7
权限:(1777/drwxrwxrwt) Uid:( 0/ root) Gid:( 0/ root)
环境:system_u:object_r:tmp_t:s0
最近访问(accees time):2016-11-02 16:16:58.165040911 +0800
最近更改(modify time):2016-11-02 16:16:56.329040766 +0800
最近改动:2016-11-02 16:16:56.329040766 +0800
创建时间:-
主要关注最近访问时间(access time)和最近更改时间(modify time) 访问时间指的是最后一次类似于cat命令查看时的时间,最近更改则为里面的内容改动,最近改动指的是上述两种任意时间改动,均会改动,这三种时间称为时间戳信息。
可以使用touch改动时间戳
touch FILE
选项:
-a=改动access time
-m=改动modify time
-t=改为指定时间(如不指定都会将时间改为当前时间)
示例:
touch -a -t 201111111111.11 FILE 将FILE的access time 改为2011年11月11日11点11分11秒。
5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
alias 定义命令别名。
示例 : alias mm='date'
定义之后敲入mm命令=执行date, 只对当前shell有效,登出失效
使用$(COMMAND)或者` `命令引用 列入我要将当前时间追加写入文件/tmp/123中:
echo `date` >> /tmp/123
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
ls /var/l*[0-9]*[[:lower:]]
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
ls /etc/[0-9]*[^0-9]
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
ls /etc/[^[:alpha:]][[:alpha:]]*
ls /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目录中。
mkdir /tmp/mytest2
cp -r /etc/p*[^0-9] /tmp/mytest1
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
mkdir /tmp/mytest2
cp -r /etc/*.d /tmp/mytest2
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
mkdir /tmp/mytest3
cp -r /etc/[lmn]*.conf /tmp/mytest3
原创文章,作者:N24_Ghost,如若转载,请注明出处:http://www.178linux.com/57254
评论列表(1条)
总结的比较详细,能注意下排版会更好~加油~