标签:路径 属性 访问 direct gid bash hive UNC 数字
(一)Linux基础(2)1、Linux上的文件管理类命令
Linux上的文件管理类命令有:cp,mv,rm.
(1)、cp命令: copy
源文件:目标文件;
cp - copy files and directories
单源复制: cp [OPTION]... [-T] SOURCE DEST
多源复制: cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
A、单源复制: cp [OPTION]... [-T] SOURCE DEST
如果DEST不存在,则事先创建此文件,并复制源文件的数据流至DEST中;
如果DEST存在:
如果DEST是非目录文件;则覆盖目标文件;
如果DEST是目录文件:则现在DEST目录下创建一个与源文件同名的文件,并复制其数据流;
B、多源复制
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
如果DEST不存在:错误;
如果DEST存在:
如果DEST是非目录文件: 错误;
如果DEST是目录文件: 分别复制每个文件至目标目录中,并保持原名;
常用选项
-i: 交互式复制,即覆盖之前提醒用户去人;
-f: --force 强制覆盖目标文件;
-r,-R: 递归复制目录;
-d: 复制符号链接文件本身,而非其指向的源文件;
-a:-dR --preserve=all,archive,用于实现归档;
--preserv=
mode:权限
ownership:属主和属组
timestamps:时间戳
context:安全标签
xattr:扩展属性
links: 符号链接
all: 上述所有属性
(2)、mv命令
? 用法和cp命令类似
? mv命令:move mv - move (rename) files
命令格式:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
源文件和目标文件再同一个目录下,即重命名
常用选项:
-i:交互式
-f:force
(3)、rm命令: remove
命令格式:rm [OPTION]... FILE...
常用选项:
? -i: interactive 交互式
? -f: force 强制
? -r: recursive 递归
删除目录:rm -rf /PATH/TO/DIR
危险操作: rm -rf /*
注意:在生产环境中,所有不用的文件建议不要直接删除,而是移动至某个人专用目录;(模拟回收站)
2、bash的基础特性:命令行展开
~:自动展开为用户的家目录,或指定的用户的家目录;
{}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;
实战:
使用命令行展开功能
1、创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,
2、在/tmp目录下创建目录:x_y, x_z, q_y, q_z
[root@bogon tmp]# mkdir -pv /tmp/{a1/{a,b},a2}
mkdir: 已创建目录 "/tmp/a1"
mkdir: 已创建目录 "/tmp/a1/a"
mkdir: 已创建目录 "/tmp/a1/b"
mkdir: 已创建目录 "/tmp/a2"
[root@bogon trash]# mkdir -v /tmp/{x,q}_{y,z}
mkdir: 已创建目录 "/tmp/x_y"
mkdir: 已创建目录 "/tmp/x_z"
mkdir: 已创建目录 "/tmp/q_y"
mkdir: 已创建目录 "/tmp/q_z"
3、什么是文件的元数据
对Linux文件系统来讲,每个文件都由两类数据组成:
? 元数据:metadata
? 数据:data
数据是是文件的内容,而元数据是文件的属性信息,我们可以用stat命令来查看文件的元数据
(1)、stat命令:
stat - display file or file system status
命令格式: stat FILE...
[root@bogon ~]# stat /tmp/hi.txt
File: ‘/tmp/hi.txt’
Size: 23 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 67309026 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-04-04 17:53:48.707013568 +0800
Modify: 2019-04-04 17:53:48.707013568 +0800
Change: 2019-04-04 17:53:48.707013568 +0800
Birth: -
元数据信息 | 解释说明 |
---|---|
File | 文件名 |
size | 文件的大小 |
blocks | 占用block的数量 |
io block | block总大小为4096 |
regular file | 定义文件类型-常规文件 |
Device | 设备编号的十六进制和十进制 |
Inode | 文件的Inode值 |
Links | 文件的硬链接数 |
第一个Access | 文件的权限 |
Context | 注释信息 |
Access | 访问时间 |
Modify | 修改时间 |
Change | 改动时间 |
? 状态信息有三个时间戳:
? access time:访问时间,atime即:通过cat,more等读取其内容的最近一次时间
? modifiy time: 修改时间,mtime即:改变文件内容的时间
? change time: 改变时间,ctime:即元数据发生改变的时间
? 修改文件的时间戳信息使用touch命令
? (2)、touch命令
touch - change file timestamps
touch [OPTION]... FILE... (如果touch的文件不存在默认会创建一个空文件)
-c: 指定的文件路径不存在是不予创建
-a:仅修改access time
-m:仅修改modify time
-t STAMP
use [[CC]YY]MMDDhhmm[.ss] instead of current time
? PS:change time是无法指定修改的,他随元数据发生改变而随之改变
4、命令引用
bash的基础特性: 引用
强引用: ‘‘ ---其内部的任何字串直接显示
弱引用: "" ---变量中所存储的值作变量替换显示出来
命令引用: ``或$()
举例:在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22
[root@localhost ~]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
[root@localhost ~]# ls /tmp | grep tfile
tfile-2019-04-06-16-54-51
5、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中
[root@localhost ~]# mkdir /tmp/mytest1
[root@localhost ~]# cp -r /etc/p*[^0-9] /tmp/mytest1
[root@localhost ~]# ls -F /tmp/mytest1/
pam.d/ passwd passwd- pbm2ppa.conf pinforc pki/ plymouth/ pm/ pnm2ppa.conf popt.d/ postfix/ ppp/ prelink.conf.d/ printcap profile profile.d/ protocols pulse/ purple/ python/
6、用户和组管理类命令的使用方法
练习:创建用户tom,指定UID为5001,指定家目录为/tmp/tom, 指定shell为/bin/zsh, 指定基本组为tom,附加组为jack
[root@localhost ~]# groupadd jack
[root@localhost ~]# groupadd tom
[root@localhost ~]# useradd -u 5001 -d /tmp/tom -s /bin/zsh -g tom -G jack tom
标签:路径 属性 访问 direct gid bash hive UNC 数字
原文地址:https://blog.51cto.com/5373107/2374753