linux的各种文件管理命令 例如: mkdir rmdir rm 等等
mkdir
作用:创建目录
-m<目标属性>或--mode<目标属性>建立目录的同时设置目录的权限; -p或--parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录; rmdir 作用:删除目录
-p或–parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;
–ignore-fail-on-non-empty:此选项使rmdir命令忽略由于删除非空目录时导致的错误信息;
-v或-verboes:显示命令的详细执行过程;
rm
作用:删除文件和文件夹
-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录; -f:强制删除文件或目录; -i:删除已有文件或目录之前先询问用户; -r或-R:递归处理,将指定目录下的所有文件与子目录一并处理; --preserve-root:不对根目录进行递归操作; -v:显示指令的详细执行过程。
文件元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
1、元数据定义:
数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的
元数据就是数据的数据。
任何文件系统中的数据分为数据和元数据。数据是指普通文件中的实际数据,而元数据指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者以及文件数据块的分布信息(inode…)等等。在集群文件系统中,分布信息包括文件在磁盘上的位置以及磁盘在集群中的位置。用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。
文件系统元数据(metadata)的更改都被保存在一份单独的日志里,当发生系统崩溃时可以根据日志正确地恢复数据。除此之外,日志使系统重新启动时不必进行文件系统的检查,从而缩短了恢复时间。
2、元数据管理方式:
元数据管理有两种方式:集中式管理和分布式管理
集中式管理:是指在系统中有一个节点专门司职元数据管理,所有元数据都存储在该节点的存储设备上。所有客户端对文件的请求前,都要先对该元数据管理器请求元数据。
分布式管理:是指将元数据存放在系统的任意节点并且能动态的迁移。对元数据管理的职责也分布到各个不同的节点上。
大多数集群文件系统都采用集中式的元数据管理。因为集中式管理实现简单,一致性维护容易,在一定的操作频繁度内可以提供较满意的性能。缺点是单一失效点问题,若该服务器失效,整个系统将无法正常工作。而且,当对元数据的操作过于频繁时,集中的元数据管理成为整个系统的性能瓶颈。
分布式元数据管理的好处是解决了集中式管理的单一失效点问题,而且性能不会随着操作频繁而出现瓶颈。其缺点是,实现复杂,一致性维护复杂,对性能有一定影响。
文件的数据分为两类:一类为元数据,既属性数据;一种就是数据本身。
可用命令stat查看文件的元数据
stat:
功能说明:显示inode内容。
语 法:stat [文件或目录]
补充说明:stat以文字的格式来显示inode的内容。
ls 命令及其许多参数提供了一些非常有用的文件信息。另一个不太为人所熟知的命令 stat 提供了一些更为有用的信息。
例:
查看可执行文件“oracle”
# stat oracle
File: ‘oracle’
Size: 93300148 Blocks:182424 IO Block:4096 Regular File
Device: 343h/835d Inode: 12009652 Links: 1
Access: (6751/-rwsr-s–x) Uid:( 500/ oracle) Gid:( 500/ dba)
Access: 2006-08-04 04:30:52.000000000 -0400
Modify: 2005-11-02 11:49:47.000000000 -0500
Change: 2005-11-02 11:55:24.000000000 -0500
使用该命令获得的信息:除了通常的文件大小(也可以使用 ls -l 命令获得)以外,您还获得了该文件占用的块数。通常的 Linux 块大小为 512 字节,因此一个大小为 93,300,148 字节的文件将占用 (93300148/512=) 182226.85 个块。由于块都是完整占用,因此该文件使用了一些整数个数的块。无需猜测就可以获得确切的块数
stat 命令的修改符 -f 显示了有关文件系统(而非文件)的信息:
# stat -f oracle
File: “oracle”
ID: 0 Namelen:255 Type:ext2/ext3
Blocks: Total: 24033242 Free: 15419301 Available: 14198462 Size: 4096
Inodes: Total: 12222464 Free: 12093976
另一个选项 -t 显示了完全相同的信息,只不过是在一行中显示的:
# stat -t oracle
oracle 93300148 182424 8de9 500 500 343 12009652 1 0 0 1154682061
1130950187 1130950524 4096
修改文件时间戳信息
命令:touch
touch命令一般用来修改文件的时间,或者新建一个不存在的文件.
语法如下: touch [-acm][-r ref_file(参照文件)|-t time(时间值)] file(文件名)
例子:
touch file1.txt 更新file1.txt的存取和修改时间
touch -c file1.txt 如果file1.txt不存在,不创建文件
touch -r ref_file file1.txt 更新file1.txt的时间戳和ref+file相同
touch -t 0911252234.40 file1.txt 设定文件的时间为09年11月25日22点34分40秒
参数说明:
-a 修改文件 file 的存取时间.
-c 不创建文件 file.
-m 修改文件 file 的修改时间
-r ref_file 将参照文件 ref_file 相应的时间戳记的数值作为指定文件 file 时间戳记的新值.
-t time 使用指定的时间值 time 作为指定文件 file 相应时间戳记的新值.
此处的 time 规定为如下形式的十进制数∶ [[CC]YY]MMDDhhmm[.SS] 这里,CC为年数中的前两位,即”世纪数”;YY为年数的后两位,即某世纪中的年数.如果不给出CC的值,则touch 将把年数CCYY限定在1969–2068之内.MM为月数,DD为天将把年数CCYY限定在1969–2068之内.MM为月数,DD为天数,hh 为小时数(几点),mm为分钟数,SS为秒数.此处秒的设定范围是0–61,这样可以处理闰秒.这些数字组成的时间是环境变量TZ指定的时区中的一个时 间.由于系统的限制,早于1970年1月1日的时间是错误的.
使用touch可以一次创建多个文件:
# touch myfile01 myfile02 myfile03
#touch myfile0{1,2,3} 创建myfile01 myfile02 myfile03 三个文件
linux定义别名
用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。 alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在/etc/profile或自己的~/.bashrc中设定指令的别名。
还有,如果你想给每一位用户都生效的别名,请把alias la=’ls -al’ 一行加在/etc/bashrc最后面,bashrc是环境变量的配置文件 /etc/bashrc和~/.bashrc 区别就在于一个是设置给全系统一个是设置给单用户使用 有,如果你想给每一位用户都生效的别名,请把alias la=’ls -al’ 一行加在/etc/bashrc最后面,bashrc是环境变量的配置文件 /etc/bashrc和~/.bashrc 区别就在于一个是设置给全系统一个是设置给单用户使用
参数:若不加任何参数,则列出目前所有的别名设置。
例如:
alias md=mkdir
glob:bash中用于实现文件名“通配”
通配符:*,?,[]
(1)*
任意长度的任意字符
(2)?
任意单个字符,,可以连续使用多个问号,几个问号就代表几个字符
(3)[]
匹配指定范围内的任意单个字符
[abc],[0-9]从所有[]内的字符挑一个
[a-z]不区分大小写
[A-Z]仅匹配大写
(4)[^]匹配指定范围之外的任意单个字符
专用字符集合
[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母
[:upper:]: 任意大写字母
[:alpha:]: 任意大小写字母
[:alnum:]:任意数字或字母
[:space:]:
[:punct:]:标点符号
例如:
显示var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字的目录和文件.
~]# ls -d /var/l*[0-9]*[[:lower:]]
显示/etc/目录下,以任意数字开头,且以非数字结尾的文件和目录
~]# ls -d /etc/[[:digit:]]*[^[:digit:]]
在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件
~]# touch tfile-‘date +”%Y-%m-%d-%H-%M-%S”‘
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/92024