Cornelius Roemer Asked: 2021-09-29 09:38:27 +0800 CST2021-09-29 09:38:27 +0800 CST 2021-09-29 09:38:27 +0800 CST 如何在less/vim中打开n个最近修改的文件? 772 如何打开或仅打开目录中的所有且仅 n 个(例如 5 个)最近修改的less文件vim? 我知道我可以使用ls -t从最新到最旧的输出排序。所以我的直觉是使用ls -t | head -5 | vim,但这不起作用,因为ls输出被 vim 当作原始文本而不是文件名。 我该怎么做find?我的问题find是我总是使用ls浏览器目录,所以知道如何使用它——但find我从不用于那个目的。 files find 1 个回答 Voted Best Answer Jeff Schaller 2021-09-29T10:24:59+08:002021-09-29T10:24:59+08:00 您真的希望 shell 选择这些文件名,以防任何文件名包含来自 的字符$IFS,通常是空格、制表符或换行符。您可以通过询问 (GNU)find实用程序来查找文件并使用 NULL 分隔它们的文件名,然后使用 (GNU)xargs实用程序将这些文件名分隔回 less 或 vim 来解决此问题,但我认为只使用可以更简单的 shell本机生成文件名: zsh -c 'vim *(om[1,5])' zsh这使用带有通配符的单个命令调用,vim该通配符扩展为当前目录中最近修改的五个文件。这些文件名作为单独的参数安全地提供给vim- 它们不会被$IFS. 查看更多示例:查找最新文件,是否可以在命令行参数中引用最近修改的文件?, 和访问(按字母顺序排序的)目录中的最新文件
您真的希望 shell 选择这些文件名,以防任何文件名包含来自 的字符
$IFS
,通常是空格、制表符或换行符。您可以通过询问 (GNU)find
实用程序来查找文件并使用 NULL 分隔它们的文件名,然后使用 (GNU)xargs
实用程序将这些文件名分隔回 less 或 vim 来解决此问题,但我认为只使用可以更简单的 shell本机生成文件名:zsh
这使用带有通配符的单个命令调用,vim
该通配符扩展为当前目录中最近修改的五个文件。这些文件名作为单独的参数安全地提供给vim
- 它们不会被$IFS
.查看更多示例:查找最新文件,是否可以在命令行参数中引用最近修改的文件?, 和访问(按字母顺序排序的)目录中的最新文件