1. 使用ls 来查看文件的 mtime,ctime,atime。 注意这里面没有createtime。
-
ls -lc filename 列出文件的 ctime change-status times
-
ls -lu filename 列出文件的 atime last-access times
-
ls -l filename 列出文件的 mtime 文件属性(比如权限)修改的时间,一般mtime改变时ctime也会改变。 last-modification times
-
ls -lt |head -n 10 #先根据mtime 排序,然后查看最新创建的10个文件名
2. touch 命令来修改mtime,atime.
-
touch -m -t 08010600 chi.txt #修改mtime 为Aug 1 ,mtime 可以修改到将来
-
touch -a -t 06232230 chi.txt #修改atime
-
touch -t 201607100000 aa.txt
-
touch -t 201607110000 bb.txt #我们创建了两个文件 aa.txt 的mtime 和 atime 都是 我们制定的,但是ctime 仍然是系统默认的
-
ls -lt aa.txt
-rw-r--r-- 1 root root 0 Jul 10 00:00 aa.txt #mtime
-
ls -lu aa.txt
-rw-r--r-- 1 root root 0 Jul 10 00:00 aa.txt #atime
-
ls -lc aa.txt
-rw-r--r-- 1 root root 0 Jul 11 12:56 aa.txt #ctime
3. 如何找出一天内创建的文件.
使用上面创建的文件我们可以找出 在 20160710号这一天在当前目录下创建的文件。
-
find ./ -type f -newer aa.txt ! -newer bb.txt
4. 为什么这个find 命令没有输出? 因为/usr/share/zoneinfo/posix/ 目录下都是软连接
-
find /usr/share/zoneinfo/posix/ -type f
-
file /usr/share/zoneinfo/posix/Cuba
-
/usr/share/zoneinfo/posix/Cuba: symbolic link to ../Cuba
-
#如果要follow 软连接,需要加上find -L
-
find -L /usr/share/zoneinfo/posix/ -type f
5. 重定向stderr,stdout, 使得我的脚本输出能同时出现在屏幕和文件中.
-
printf '%s\n%v\n' OK? 2>&1 |tee logs #tee 默认只复制stdout.
-
printf '%s\n%v\n' OK? Oops! &>> FILE #这两种用法不是那么formal,但是都是将stderr 和stdout 重定向到文件
-
printf '%s\n%v\n' OK? Oops! &> FILE
6. awk的几个用法
打印最长一行的字符数,当然也可以同时打印出这一行
-
awk '{if(length($0)>max) max=length($0)} END {print max}'
-
awk '{if(length($0)>max) max=length($0)} END {print max,$0}'
打印超过80个字符的行
-
awk '{if (length($0)>80) print $0}'
打印最后一行(打印第一行可不是BEGIN)
打印第一行
打印多行
-
awk 'NR==3,NR==5 {print NR,$0}' #3,4,5行
-
awk 'NR==3 || NR==5 {print NR,$0}' #3行和5行
-
awk 'NR<3 || NR>5 {print NR,$0}' #小于3行,或者大于5行的
打印列数,和每行最后一列
更多awk 的用法,请参阅:
阅读(1278) | 评论(0) | 转发(0) |