发布时间:2014-09-05 17:03:24作者:知识屋
问:在Linux下怎么找出多个文件(比如*.cpp)中最新的那个文件?
答:可以采用如下命令形式
(1)将文件按从新到旧排列,取第一个。
ls -t *.cpp | head -1
(2)将文件按从旧到新排列,取最后一个。
ls -rt *.cpp | tail -1
执行示例:
[root@jfht synway]# ls -lrt *.cpp
-rw-r--r-- 1 root root 246 2007-09-12 ch_set.cpp
-rw-r--r-- 1 root root 10073 2008-11-04 ssv_codec.cpp
-rw-r--r-- 1 root root 2199 2008-11-04 main.cpp
-rw-r--r-- 1 root root 600 2008-11-04 config.cpp
-rw-r--r-- 1 root root 2533 2008-11-07 syn_thread.cpp
-rw-r--r-- 1 root root 998 2008-11-07 ssv_server.cpp
-rw-r--r-- 1 root root 5301 2008-11-07 ctsc_session.cpp
-rw-r--r-- 1 root root 9692 2008-11-07 ctmc_session.cpp
-rw-r--r-- 1 root root 83121 2010-06-30 ch_info.cpp
从上面的输出来看,显然ch_info.cpp是最新的。
[root@jfht synway]# ls -t *.cpp | head -1
ch_info.cpp
[root@jfht synway]# ls -rt *.cpp | tail -1
ch_info.cpp
[root@jfht synway]#
编写成脚本执行,如下所示:
[root@jfht synway]# vi newest_file.sh
#!/bin/sh
newest_file_of()
{
ls -t "$@" | head -1
}
echo "newest file of *.cpp is $(newest_file_of *.cpp)"
[root@jfht synway]# ./newest_file.sh
newest file of *.cpp is ch_info.cpp
[root@jfht synway]#
上述命令的详细解释:
ls -t
按修改时间排序,较新的文件排在前面(sort by modification time),也就是按照从新到旧排序。如果要按照从旧到新排序,则需要增加-r参数(逆序)。
man ls 写道
-l use a long listing format
-r, --reverse
reverse order while sorting
-t sort by modification time
head -1
取第一行。也可以写作:head -n 1。
man head 写道
-n, --lines=[-]N
print the first N lines instead of the first 10; with the leading ‘-’, print all but the last N lines of each file
tail -1
取最后一行。也可以写作:tail -n 1。
man tail 写道
-n, --lines=N
output the last N lines, instead of the last 10
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能