文件管理类命令——操作
文件管理类命令——操作:
Linux文件时间戳:
atime,access time : 访问时间:最近一次被访问(读或者打开)
mtime,modify time : 修改时间:往文件中写数据或者删数据
ctime,change time : 改变时间:源数据(权限、大小)发生改变
改变文件的时间戳,文件不存在创建文件:
# touch [OPTION]... FILE...
-a: 只改变访问时间(atime)
-c: 只改变文件时间戳,不创建文件
-m:只改变修改时间(mtime)
-t STAMP:指定时间改变时间戳
[[CC]YY]MMDDhhmm[.ss]
示例:
在/tmp目录下创建以file开头,后跟当前日期和时间的文件,文件名格式如:file-1970-01-01-00-00-00
touch file-$(date +%F-%H-%M-%S)
或
touch file-`date +%F-%H-%M-%S`
修改file开头的文件的时间戳,指定时间为 1970-01-01 00:00:00
touch -t 197001010000.00 file*
显示文件或文件状态:
# stat [OPTION]... FILE...
-f:显示文件系统状态
-t:以简要信息显示文件状态值
复制文件或者目录 :
# cp SRC DEST
SRC(源文件/目录), DEST(目标目录/文件)
假如SRC是一个文件:
如果目标文件且存在:覆盖
如果目标文件不存在:创建新文件
如果目标存在,且是个目录,复制源至目标目录,且保存原名
# cp SRC...DEST
假如SRC有多个文件:
如果目标存在,且是一个文件,复制无法进行
如果目标存在,且是一个目录:复制各文件至目标目录中,并保持原名
如果目标不存在:复制无法进行
# cp -t DEST SRC...
如果SRC只有一个且是目录:-r
如果目标是一个文件且存在:失败
如果目标文件不存在:创建新目录
如果目标存在,且是个目录:复制源目录至目标目录中,且保持原名
cp命令的长选项:
-r:递归
-i:交互
-d:当源为链接文件时,复制链接
-a:相当于 -dr
-p:保持原有属性
-f:强制
示例:
归档/etc/rc.d/init.d 到/tmp 目录下,归档名为init.d.bak
cp -a /etc/rc.d/init.d /tmp/init.d.bak
复制/etc/inittab 到/tmp目录下,重命名为 inittab.bak,保留原有属性
cp -p /etc/inittab /tmp/inittab.bak
复制/tmp下a_b、a_c、d_b、d_c 到/tmp/bak 目录下
cp -r /tmp/{a,d}_{b,c} /tmp/bak
复制/etc/rc.local 到/tmp目录下,保留文件链接属性
cp -P /etc/rc.local /tmp/rc.local
复制/etc目录下passwd、inittab、rc.d/rc.local 到/tmp/bak目录下,并使用 -t选项
cp -t /tmp/bak /etc/{passwd,inittab,rc.d/rc.local}
移动文件或者目录:
# mv 文件名 【用法跟cp相近】
可以直接移动目录,而无须-r选项
-f:覆盖前不提示,强制覆盖
-i:覆盖前提示
-t:先指定目标目录,再指定源文件信息
# mv /tmp/passwd /tmp/abc:改名
# mv /tmp/passwd /var/tmp/abc:移动
删除文件或者目录:
# rm 文件名 【但是不能删除目录】
-f:忽略交互提示,强制删除
-i:删除前交互提示
-r,-R:递归删除目录
# rm /tmp/passwd : 有用户提示交互信息,因为rm='rm -i',此时输入y/n结束输入
#
m /tmp/passed : 没有用户提示交互信息,因为命令的含义是默认操作
删除非空目录:
# rm -rf 文件名 【为了安全起见,因为这样的命令可以执行,尽量使用非管理员登陆系统 】
统计字符:
# wc[option][file]...
-l:统计行数
-c:统计字节数
-w:统计单词数
转换或删除字符——tr
tr ‘集合1’ ‘集合2’,必须使用管道
转换字符:会把第一个字符集的对应转换为第二个字符集中的对应转换
tr -d'字符集合':删除出现过的字符集
根据制定的分隔符切片,并显示出需要显示的片——cut
-d字符:指定分隔符
-f数字:指定要显示的字段
单个数字:一个字段
逗号分隔多个数字:指定多个离散字段
-:连续字段 如3-5
按字符进行比较:
# sort[options] file ...
-f:忽略字符大小写
-n:对数字进行排序(比较数值大小)
-t:指定分隔符
-k#:指定分隔后进行比较字段
-u:重复的行,只显示一行
移除重复的行——uniq
-c:显示每行重复的次数(靠着的行)
-d:仅显示重复过的行
-u:仅显示不重复的行