如何通过终端获取最新文件的名称?

Ale*_*lec 7 shell command-line keyboard-maestro

我正在尝试为OS X的Keyboard Maestro创建一个宏,执行以下操作:

  1. 根据创建的日期获取磁盘上目录中最新文件的名称;
  2. 粘贴文本"最新文件:"加上最新文件的名称.

其中一个选项是"执行一个shell脚本",所以我认为这样做是为了1.在谷歌搜索了一下后我想出了这个:

cd /path/to/directory/
ls -t | head -n1
Run Code Online (Sandbox Code Playgroud)

这会对它进行排序,并返回第一个文件名.但是,它似乎也包括换行符,我不想要.至于2:我可以在应用程序中输出带有不同操作的文本"最新文件:",并将文件名粘贴到其后面.但我想知道你是否不能返回"随机文本"+ ls命令的结果.

所以我的问题是:我只能使用ls命令吗?而且我怎么只是最新的文件的名称,没有任何换行或退货?

Dav*_*har 10

由于你已经在使用管道,只需在那里再扔一个:

ls -t | head -n1 |awk '{printf("newest file: %s",$0)}'
Run Code Online (Sandbox Code Playgroud)

(请注意,"printf"最后不包含'\n';它摆脱了换行符)

编辑:

随着Arkku建议在第一行之后退出awk,它看起来像:

ls -t | awk '{printf("newest file: %s",$0);exit}'
Run Code Online (Sandbox Code Playgroud)