如何在目录中单独获取最新的文件名?

R11*_*11G 4 linux

我在用

ls -ltr /homedir/mydirectory/work/ |tail -n 1|cut -d ' ' -f 10
Run Code Online (Sandbox Code Playgroud)

但这是获得理想结果的一种非常粗糙的方式.而且它也是不可靠的.我得到的输出只是执行

ls -ltr /homedir/mydirectory/work/ |tail -n 1
Run Code Online (Sandbox Code Playgroud)

-rw-r--r-- 1 user pusers 1764 Apr  1 12:06 firstfile.xml
Run Code Online (Sandbox Code Playgroud)

所以在这里我得到了文件名.但是如果执行上述命令的输出就像

-rw-r--r-- 100 user pusers 1764 Apr  1 12:06 firstfile.xml
Run Code Online (Sandbox Code Playgroud)

第一个命令失败!可以理解的是,因为我正在削减现在没有效的第10个字符的结果.

那么如何改进它.

小智 8

如果你不需要它,为什么要使用-l旗帜ls呢?让ls简单的输出文件名,如果你不需要的,而不是试图"解析"的不统一输出(强奸差文本处理工具...)了解更多信息.

LAST_MODIFIED_FILE=`ls -tr | tail -n 1`
Run Code Online (Sandbox Code Playgroud)

  • @R11G 不,你没有。如果不是文件名,你认为 `ls` 会输出什么?你有没有尝试过我提出的解决方案? (2认同)