本次继续学习linux基础命令,包括stat、touch、cp、mv、rm、tree、mkdir、rmdir,tee
1、stat
命令格式
stat [OPTION]... FILE...
命令功能
显示文件的时间戳,即访问时间、修改时间和改变时间
stat [OPTION]... FILE...
[root@centos6 ~]# stat newfile
File: `newfile'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 802h/2050d Inode: 659584 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-07-28 10:21:00.272976560 +0800
Modify: 2016-07-28 10:21:00.272976560 +0800
Change: 2016-07-28 10:21:00.272976560 +0800
2、touch
命令格式
touch [OPTION]... FILE...
命令功能
改变文件的时间戳
[OPTION]
-a:仅同步atime和ctime
[root@centos6 ~]# touch -a newfile
[root@centos6 ~]# stat newfile
File: `newfile'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 802h/2050d Inode: 659584 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-07-28 11:17:31.718974393 +0800
Modify: 2016-07-28 11:17:00.607975533 +0800
Change: 2016-07-28 11:17:31.718974393 +0800
-m:仅同步mtime和ctime
-t:使用[[CC]YY]MMDDhhmm[.ss]改变文件的atime和mtime,若与-a一起使用,仅改变atime。可以制造一些访问假象
[root@centos6 ~]# touch -at 201601011200.30 newfile
[root@centos6 ~]# stat newfile
File: `newfile'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 802h/2050d Inode: 659584 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-01-01 12:00:30.000000000 +0800
Modify: 2016-07-28 11:17:00.607975533 +0800
Change: 2016-07-28 11:20:09.986975310 +0800
-c:如果文件不存在,则不予创建
3、cp
命令格式
cp [OPTION]... SOURCE... DIRECTORY
命令功能
复制文件或者目录到指定的目标
[OPTION]
-i, --interactive:交互式复制
-r, -R: 递归复制目录及内部的所有内容
-v,--verbose:显示复制的详细信息
-a: 归档复制资源的全部属性,常用于文件备份
--preserv[=ATTR_LIST]:复制资源时指定其特性,包括
mode: 权限
ownership: 属主属组
timestamp:
links
xattr
context
注意:复制资源时,会出错的俩种情况
1、复制多个文件到不是目录的文件夹
2、复制目录未使用-r
注意:
复制文件到未创建的文件时,新建文件,数据不变
复制文件到目录时,创建同名文件,数据不变
复制目录到未创建的目录时,新建目录,数据不变
4、mv
命令格式
mv [OPTION]... SOURCE... DIRECTORY
命令功能
移动文件,且不保留原文件
[OPTION]
-i,--interactive:交互式移动文件
注意事项与cp相同,不过在同一目录下移动文件时,改变文件名
[root@centos6 testdir]# touch FILE1
[root@centos6 testdir]# ls
FILE1
[root@centos6 testdir]# mv FILE1 FILE2
[root@centos6 testdir]# ls
FILE2
5、rm
命令格式
rm [OPTION]... FILE...
命令功能
删除文件或者目录
[OPTION]
-i,--interactive:交互式删除数据
-r, -R, --recursive:递归删除数据
-f:强制删除数据
--no-preserve-root:配合此命令,可以删除根。
[root@centos7 ~]# rm -rf /
rm: it is dangerous to operate recursively on ‘/’
rm: use --no-preserve-root to override this failsafe
[root@centos7 ~]# rm -rf / --no-preserve-root
rm: cannot remove ‘/media/Packages/yum-plugin-tmprepo-1.1.31-34.el7.noarch.rpm’: R ead-only file system
rm: cannot remove ‘/media/Packages/yum-plugin-show-leaves-1.1.31-34.el7.noarch.rpm ’: Read-only file system
rm: cannot remove ‘/media/Packages/yum-plugin-rpm-warm-cache-1.1.31-34.el7.noarch.r pm’: Read-only file system
rm: cannot remove ‘/media/Packages/yum-plugin-remove-with-leaves-1.1.31-34.el7.noar ch.rpm’: Read-only file system
特别友情提示:危险操作,切勿模仿!
6、tree
命令格式
tree [OPTION] [FILE]...
命令功能
列出目录树的内容
[OPTION]
-d: 只显示目录
-L level:指定显示的层级数目
7、mkdir
命令格式
mkdir [OPTION]... DIRECTORY...
命令功能
创建目录
[OPTION]
-p: 存在父目录不报错,可自动创建所需的各目录
[root@centos6 testdir]# rm -rf ./*
[root@centos6 testdir]# ls
[root@centos6 testdir]# mkdir 1/2/3
mkdir: cannot create directory `1/2/3': No such file or directory
[root@centos6 testdir]# mkdir -pv 1/2/3
mkdir: created directory `1'
mkdir: created directory `1/2'
mkdir: created directory `1/2/3'
-v: 显示详细信息
-m MODE: 创建目录时直接指定权限
8、rmdir
命令格式
rmdir [OPTION]... DIRECTORY...
命令功能
删除空目录
root@centos7 testdir]# mkdir -p a/b/c/d
[root@centos7 testdir]# tree
.
└── a
└── b
└── c
└── d
4 directories, 0 files
[root@centos7 testdir]# rmdir a
rmdir: failed to remove ‘a’: Directory not empty
[OPTION]
-p: 递归删除空目录
[root@centos7 testdir]# tree
.
└── a
└── b
└── c
└── d
4 directories, 0 files
[root@centos7 testdir]# rmdir -p a/b/c/d
[root@centos7 testdir]# ls
[root@centos7 testdir]#
-v: 显示详细信息
9、tee
命令格式
tee [OPTION]... DIRECTORY...
命令功能
标准输出文本之后,又将文本保存到指定文件中
常用选项
-a:追加数据到指定文件
[root@centos7 testdir]# who | tee who.bak
user :0 2016-07-21 14:55 (:0)
user pts/0 2016-07-29 10:32 (:0)
root pts/1 2016-08-05 13:41 (10.1.250.29)
batch tty2 2016-08-02 12:21
[root@centos7 testdir]# ls | tee -a who.bak
a
acl.txt
dir
dir2
f1
who.bak
[root@centos7 testdir]# cat who.bak
user :0 2016-07-21 14:55 (:0)
user pts/0 2016-07-29 10:32 (:0)
root pts/1 2016-08-05 13:41 (10.1.250.29)
batch tty2 2016-08-02 12:21
a
acl.txt
dir
dir2
f1
who.bak