Files

如何在less/vim中打開n個最近修改的文件?

  • September 28, 2021

如何打開或僅打開目錄中的所有且僅 n 個(例如 5 個)最近修改的less文件vim

我知道我可以使用ls -t從最新到最舊的輸出排序。所以我的直覺是使用ls -t | head -5 | vim,但這不起作用,因為ls輸出被 vim 當作原始文本而不是文件名。

我該怎麼做find?我的問題find是我總是使用ls瀏覽器目錄,所以知道如何使用它——但find我從不用於那個目的。

您真的希望 shell 選擇這些文件名,以防任何文件名包含來自 的字元$IFS,通常是空格、製表符或換行符。您可以通過詢問 (GNU)find實用程序來查找文件並使用 NULL 分隔它們的文件名,然後使用 (GNU)xargs實用程序將這些文件名分隔回 less 或 vim 來解決此問題,但我認為只使用可以更簡單的 shell本機生成文件名:

zsh -c 'vim *(om[1,5])'

zsh這使用帶有萬用字元的單個命令呼叫,vim該萬用字元擴展為目前目錄中最近修改的五個文件。這些文件名作為單獨的參數安全地提供給vim- 它們不會被$IFS.

查看更多範例:查找最新文件是否可以在命令行參數中引用最近修改的文件?, 和訪問(按字母順序排序的)目錄中的最新文件

引用自:https://unix.stackexchange.com/questions/671014