如何找到最后修改的文件,然后将其解压缩

时间:2016-01-16 07:03:22

标签: shell

说我有3个archrive文件:

a.7z
b.7z
c.7z

我想要的是找到最后修改过的archrive文件,然后将其解压缩

  

1st:找到最后修改的

     

第二名:摘录

第一: ls -t | head -1

我的问题是如何使用" |"在第一个命令结束时

3 个答案:

答案 0 :(得分:2)

你可以这样做:

7z e `ls -t | head -1`

使用``嵌入第一个命令。

答案 1 :(得分:2)

您可以使用以下代码在一行中一起编写多个命令。

用于提取.7z文件的

ls -t | head -1 && 7z e <file_name>.tar.7z命令

答案 2 :(得分:0)

这是一种在目录中提取最后修改过的文件的更安全的方法:

find . -maxdepth 1 -type f -printf "%T@\0%p\0\0" |
    awk -F '\0' -v RS='\0\0' '$1 > maxt{maxt=$1; maxf=$2} END{printf "%s%s", maxf, FS}' |
    xargs -0 7z e

这需要gnu find和gnu awk。

-printf选项使用单个NUL字符或\0'作为字段分隔符,使用2个NUL字符\0\0作为awk的记录分隔符。