linux文件管理命令有:cp,mv,rm
cp命令:用于复制件或目录文
[root@localhost etc]# cp -i /etc/passwd /tmp/123 [root@localhost etc]# cd /tmp [root@localhost tmp]# ls 123 //cp/etc目录下得passwd至/tmp目录下并更名为123。此为单源复制,源文件可以为文件也可以是目录但必须是一个
[root@localhost tmp]# cp -r /etc /tmp/ [root@localhost tmp]# ls /tmp 123 etc [root@localhost tmp]# //-r复制目录。此为多源复制,目标文件必须是目录 注意:文件属主得不同会带来文件权限上得变化 如要备份-r选项改为-a
[root@localhost etc]# cp -d ./favicon.png /tmp
常用选项:
-i:交互式复制,即覆盖之前提醒用户确认;
-f:强制覆盖目标文件;
-r, -R:递归复制目录;
-d:复制符号链接文件本身,而非其指向的源文件;
-a:-dR –preserve=all, archive,用于实现归档;
mv命令:移动文件、目录 或更名
[root@localhost tmp]# ls 123 etc favicon.png lianxi1.sh [root@localhost tmp]# mv 123 234 [root@localhost tmp]# ls 234 etc favicon.png lianxi1.sh [root@localhost tmp]# //重命名 注意:重命名目录名也可不加选项
[root@localhost tmp]# mv 234 ./magedu.com [root@localhost tmp]# ls /tmp/magedu.com 234 machine-id mtab [root@localhost tmp]# //移动
常用选项:
-i:交互式;
-f:当目标文件存在,强行覆盖
rm命令:删除
[root@localhost magedu.com]# ls 234 machine-id mtab [root@localhost magedu.com]# rm 234 //直接跟目标文件名即可 rm: remove regular file ‘234’? y //root用户使用rm时,其别名默认为rm -i 即交互式。 [root@localhost magedu.com]# ls machine-id mtab [root@localhost magedu.com]#
[root@localhost tmp]# rm -r ./etc //删除目录 rm: descend into directory ‘./etc’? y //管理员的rm别名默认为rm -i,同上 rm: remove regular file ‘./etc/fstab’? y
[root@localhost tmp]# rm -rf ./etc //-f 强行删除,切记危险操作
常用选项:
-i:交互式
-f:强制
-r: 递归删除
注意:所有不用的文件建议不要直接删除,而是移动至某个专用目录;(模拟回收站)
bash命令执行的状态结果:
bash通过状态返回值来输出此结果:
成功:0
失败:1-255
命令执行完成之后,其状态返回值保存于bash的特殊变量$?中;
[xujie@localhost ~]$ ls [xujie@localhost ~]$ echo $? 0 [xujie@localhost ~]$
[xujie@localhost ~]$ lls -bash: lls: command not found [xujie@localhost ~]$ echo $? 127 [xujie@localhost ~]$
命令行展开:
~:自动展开为用户的家目录,或指定的用户的家目录;
{}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;
例如:/tmp/{a,b} 相当于 /tmp/a /tmp/b
请使用命令行展开功能来完成以下练习?
(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
[root@localhost tmp]# mkdir -pv {a,d}_{b,c} mkdir: created directory ‘a_b’ mkdir: created directory ‘a_c’ mkdir: created directory ‘d_b’ mkdir: created directory ‘d_c’ [root@localhost tmp]#
[root@localhost tmp]# mkdir -pv /tmp/mylinux/{bin,boot,boot/grub,dev,etc,etc/{rc.d/init.d ,sysconfig/network-scrip}lib,lib/modules,lib64,proc,sbin,sys,tmp,usr,usr/loca/{bin,sbin}, var/{lock,log,run}}
[root@localhost tmp]# tree mylinux mylinux ├── bin ├── boot │ └── grub ├── dev ├── etc │ ├── rc.d │ │ └── init.dlib │ └── sysconfig │ └── network-scriplib ├── lib │ └── modules ├── lib64 ├── proc ├── sbin ├── sys ├── tmp ├── usr │ └── loca │ ├── bin │ └── sbin └── var ├── lock ├── log └── run 24 directories, 0 files
文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?
[root@localhost tmp]# ls mylinux [root@localhost tmp]# stat mylinux //使用stat命令查看文件的元数据 File: ‘mylinux’ //文件名 Size: 4096 Blocks: 8 IO Block: 4096 directory //文件大小,占据多少个块,IO块,文件的类型 注: Blocks:8 IO Block:4096 占据8个块,每一个块的大小4096字节 Device: fd00h/64768d Inode: 458214 Links: 14 //所在的设备号,索引节点号,硬链接 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) //权限,UID,组ID Context: unconfined_u:object_r:user_tmp_t:s0 Access: 2016-08-20 23:00:34.989551567 -0400 //最近访问,读取数据流 Modify: 2016-08-20 22:59:39.296555079 -0400 //这三个时间代表时间戳//最近更改,元数据改变 Change: 2016-08-20 22:59:39.296555079 -0400 //最近改动,数据改变 Birth: - [root@localhost tmp]#
修改时间戳:touch命令 touch命令通常只改变Access Time和Modify Time
[root@localhost tmp]# stat ./mylinux/ File: ‘./mylinux/’ Size: 4096 Blocks: 8 IO Block: 4096 directory Device: fd00h/64768d Inode: 458214 Links: 14 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:user_tmp_t:s0 Access: 2016-08-20 23:00:34.989551567 -0400 Modify: 2016-08-20 22:59:39.296555079 -0400 Change: 2016-08-20 22:59:39.296555079 -0400 Birth: - [root@localhost tmp]# touch ./mylinux/ [root@localhost tmp]# stat ./mylinux/ File: ‘./mylinux/’ Size: 4096 Blocks: 8 IO Block: 4096 directory Device: fd00h/64768d Inode: 458214 Links: 14 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:user_tmp_t:s0 Access: 2016-08-21 00:38:12.418182188 -0400 Modify: 2016-08-21 00:38:12.418182188 -0400 Change: 2016-08-21 00:38:12.418182188 -0400 Birth: - [root@localhost tmp]#
-c: 指定的文件路径不存在时不予创建;
-a: 仅修改access time;
-m:仅修改modify time;
-t STAMP 格式[[CC]YY]MMDDhhmm[.ss]年月日时分.秒
[root@localhost tmp]# touch -m -t 201609240815.45 ./mylinux/ [root@localhost tmp]# stat ./mylinux/ File: ‘./mylinux/’ Size: 4096 Blocks: 8 IO Block: 4096 directory Device: fd00h/64768d Inode: 458214 Links: 14 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:user_tmp_t:s0 Access: 2016-08-21 00:38:12.418182188 -0400 Modify: 2016-09-24 08:15:45.000000000 -0400 Change: 2016-08-21 00:45:19.599155249 -0400 Birth: - [root@localhost tmp]#
如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
定义别名 alias命令:
[xujie@localhost ~]$ alias rm='rm -i' [xujie@localhost ~]$ alias alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias rm='rm -i' alias vi='vim' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' [xujie@localhost ~]$
引用命令的执行结果:
num1=$(id 1 | grep -o "uid=[0-9]\+" | cut -d = -f 2)
[xujie@localhost ~]$ de='rm -i' [xujie@localhost ~]$ echo $de rm -i [xujie@localhost ~]$
引用命令的执行结果: $(COMMAND)或`COMMAND`
显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录?
[root@localhost tmp]# ls -d /var/l*[[:digit:]]*[[:lower:]]
显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录
[root@localhost tmp]# ls -d /etc/[0-9]*[^0-9] /etc/0a0544d
显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录?
[root@localhost tmp]# ls -d /etc/[^a-z][a-z]*
在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22
[root@localhost tmp]# touch tfile-`date +%Y-%m-%d-%H-%M-%S`
复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中
[root@localhost /]# cp -r `ls -d /etc/[p]*[^0-9]` /tmp/mytest1
复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中
[root@localhost /]# cp -r `ls -d /etc/*[.d]` /tmp/mytest2
复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中
[root@localhost /]# cp -r `ls -d /etc/[l,m,n]*[.conf]` /tmp/mytest3
原创文章,作者:N22-南京-修,如若转载,请注明出处:http://www.178linux.com/38039
评论列表(2条)
[root@localhost /]# cp -r `ls -d /etc/p*[^0-9]` /tmp/mytest1
[root@localhost /]# cp -r `ls -d /etc/*.d` /tmp/mytest2
[root@localhost /]# cp -r `ls -d /etc/[l,m,n]*.conf` /tmp/mytest3
以上最后三题的更正
写的很好,排版也很棒,加油,创建目录的题目跟题目的要求不一样啊