繁体   English   中英

Linux命令最新的非软链接文件

[英]Linux command most recent non soft link file

Linux命令:我正在使用以下命令,该命令返回目录中的最新文件名。

ls -Art | tail -n 1

当我运行此命令时,它返回的是最新更改的文件,它实际上是软链接,我想忽略结果中的软链接,并且想要获取软链接以外的其他文件名,我该怎么做呢?

可能是我指定正则表达式匹配的最新文件的文件名是

rum-12.53.2.war

ls的-L选项确实取消了链接的引用,即您将看到引用的信息而不是链接。 这是你想要的吗? 还是您想完全忽略链接?

如果您想完全忽略链接,则可以使用此解决方案,尽管我确信存在一种更简单的解决方案:

a=$( ls -Artl | grep -v "^l" | tail -1 )

aa=()
for i in $(echo $a | tr " " "\n")
do
    aa+=($i)
done

aa_length=${#aa[@]}

echo ${aa[aa_length-1]}

首先,将ls的输出存储在名为a的变量中。 通过grepping“ ^ l”,您仅选择了符号链接,并使用-v选项来反转此选择。 因此,您基本上有了所需的东西,唯一的缺点是您需要对ls使用-l选项,否则“ gl”就没有grepping了。 因此,在第二部分中,您将变量a分隔为“”,并填充了一个称为aa的数组(抱歉,命名错误)。 然后,您只需要aa中的最后一项,即文件名。

-没有软链接的目录中的最新文件

ls -ArtL | tail -n 1

-最新文件不带扩展名

ls -ArtL | sed 's/\(.*\)\..*/\1/' | tail -n 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM