Linux文件管理类命令:cp,mv,rm
cp命令:copy
单源复制:cp [OPTION]... [-T] SOURCE DEST
多源复制:cp [OPTION]... SOURCE... DIRECTORY:目标必须是目录
常用选项:
-i,--interactive:交互,覆盖前提醒用户;
-f,force:强制覆盖;
-r, -R:递归复制目录及内部所有内容;
-P:保持原有文件的属性信息;
-d:复制链接本身,如果不加-d,则会复制符号链接的源文件,类似--preserve=links;
--preserve[=ATTR_LIST]:指明保留的源文件属性:
mode:权限
ownership:属主和属组
timestamps:时间戳
context:安全标签
xattr:扩展属性
links:符号链接
all:上面所有属性
-a:相当于-dR --preserve=all,archive,实现归档复制,可以实现备份
-v:显示过程
mv命令:
单源移动:mv [OPTION]... [-T] SOURCE DEST
多源移动:mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
注意:原文件目录与目标文件目录相同路径时,重命名;否则为move;
不区分目录和文件,直接move;
常用选项:
-i,--interactive:交互式复制,移动时,如果目标文件存在时提示用户确定是否覆盖(仅root用户);
-f,force:强制移动,覆盖前不提示;
rm命令:
即能删除文件又能删目录,但删目录时要用递归-r选项;
rm - remove files or directories
rm [OPTION]... FILE...
常用选项:
-r, -R, --recursive:递归删除目录及其内容;
-f,force:强制删除,不提示确认;
-i,--interactive:交互式,提示确认;
生产环境中,可以自建回收站,不要直接删除,此命令危险!!
bash特性之命令的执行状态结果:在bash中使用一个特殊的变量$?来保存上一个命令的执行状态结果。
bash用整数来表示;命令的执行状态结果:
成功:0
失败:1-255
注意:只保存上一个命令的执行状态
~]# echo $?
bash的特性之命令行展开:{}
把命令行中给定的特殊符号自动替换为相应字符串的机制;
~:自动替换为家目录;
~USERNAME:自动替换为指定的用户家目录;
{}:
可承载一个以逗号分隔的路径列表,能够将其展开为多个独立的路径;
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
[root@192 ~]# mkdir /tmp/{a,b}_{c,d} -pv
(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@192 ~]# mkdir /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}} -pv
文件的元数据,就是数据的数据,存储与文件内容无关的信息,例如大小、权限、属主、属组、时间戳、数据块指针。
利用stat命令可以查看元数据内容
显示内容包括:
文件路径
文件大小
文件占用block
每个IO block大小
文件类型
文件所在设备的主/次设备号
文件的inode
文件被硬链接次数
文件权限
文件的属主UID
文件的属组GID
环境(SELinux)
access time:最近访问时间
modify time:最近更改时间
change time:最近改变时间
touch: 修改元数据的时间戳
touch [OPTION]... FILE...
-t STAMP:[[CC]YY]MMDDhhmm[.ss]
年月日时分秒
-a:仅修改atime;
-m:仅修改mtime;
-c;不创建文件;
touch命令也可以用做创建空文件:touch /tmp/a.txt
alias:定义命令别名
定义的别名仅在当前shell有效,如果想全局有效,就定义在全局配置文件/etc/bashrc中,如果想只对某个用户永久有效,就定义在个人家目录下的个人配置文件~/.bashrc中;
~]# alias NAME='COMMADN'
生命周期:当前shell进程有效;
撤销别名:
~]# unalias NAME
引用命令执行结果可以用` COMMAND` 或者$(COMMAND)来实现
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
~]# ll /var/l*[0-9]*[a-z]
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
~]# ll /var/[[:digit:]]*[^[:digit:]]
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
~]# ll /etc/[^[:alpha:]][a-z]?
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
[root@192 ~]# touch /tmp/tfile`date +-%Y-%m-%d-%H-%M-%S`
[root@192 ~]# mkdir /tmp/tfile$(date +-%Y-%m-%d-%H-%M-%S) -v
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
mkdir /tmp/mytest1
cp /etc/p*[^[:digit:]] /tmp/mytest1
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
mkdir /tmp/mytest2
cp /etc/*.d /tmp/mytest2
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
mkdir /tmp/mytest3
cp /etc/[lmn]*.conf /tmp/mytest3