Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux命令最新的非软链接文件_Linux_Command Line_Recent Documents - Fatal编程技术网

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选项会取消引用链接,即您将看到引用的信息而不是链接。这是你想要的吗?还是完全忽略链接 如果您想完全忽略链接,可以使用此解决方案,尽管我相信存在一个更简单的解

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的变量中。通过灰显“^l”,您只选择了符号链接,并使用-v选项反转此选择。所以你基本上得到了你想要的,唯一的缺点是你需要对ls使用-l选项,否则“^l”就不会变大。因此,在第二部分中,您将变量a拆分为“”,并填充一个名为aa的数组(很抱歉命名错误)。然后您只需要aa中的最后一项,它应该是文件名。

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

ls -ArtL | tail -n 1
--没有扩展名的最新文件

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

我想完全忽略链接