Linux命令最新的非软链接文件
Linux命令:我使用以下命令返回目录中最新的文件名Linux命令最新的非软链接文件,linux,command-line,recent-documents,Linux,Command Line,Recent Documents,Linux命令:我使用以下命令返回目录中最新的文件名 ls -Art | tail -n 1 当我运行这个命令时,它会返回我最新更改的文件,这实际上是软链接,我想在结果中忽略软链接,并想获得除软链接以外的文件名。我如何才能做到这一点?任何快速帮助都值得赞赏 我可以指定正则表达式匹配的最新文件名吗 rum-12.53.2.war ls的-L选项会取消引用链接,即您将看到引用的信息而不是链接。这是你想要的吗?还是完全忽略链接 如果您想完全忽略链接,可以使用此解决方案,尽管我相信存在一个更简单的解
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的变量中。通过灰显“^l”,您只选择了符号链接,并使用-v选项反转此选择。所以你基本上得到了你想要的,唯一的缺点是你需要对ls使用-l选项,否则“^l”就不会变大。因此,在第二部分中,您将变量a拆分为“”,并填充一个名为aa的数组(很抱歉命名错误)。然后您只需要aa中的最后一项,它应该是文件名。--目录中没有软链接的最新文件
ls -ArtL | tail -n 1
--没有扩展名的最新文件
ls -ArtL | sed 's/\(.*\)\..*/\1/' | tail -n 1
我想完全忽略链接