如何通过终端找到最近使用的文件?

Avi*_*Raj 4 command-line

我想查看最近使用(访问)的文件以及它们通过终端的路径。

我怎么能得到那个文件列表?

注意:这个问题不是使用终端显示最近修改/创建的文件的重复

Avi*_*Raj 6

它适用于具有nautilus默认文件管理器的Ubuntu 系统。

在终端上运行以下命令以查看最近访问(又名查看)的文件。

sed -nr 's/.*href="([^"]*)".*/\1/p' ~/.local/share/recently-used.xbel
Run Code Online (Sandbox Code Playgroud)

有关所有最近访问的文件的信息都存储在此特定~/.local/share/recently-used.xbel文件中。上述命令仅提取文件及其路径。

命令说明:

sed -nr 's/.*href="([^"]*)".*/\1/p' ~/.local/share/recently-used.xbel
Run Code Online (Sandbox Code Playgroud)

-n --> 抑制模式空间的自动打印

-r --> 扩展正则表达式。如果我们使用 sed with -r,那么我们不必转义某些字符,例如 ( (, ), {, }, etc)

's/.*href="([^"]*)".*/\1/p'--> sed.*href="([^"]*)".*在输入文件中搜索包含 this( ) 正则表达式的行。如果找到,则它只抓取href=( href="")之后的双引号内的字符并将其存储在一个组中。只有存储的组通过 back-reference( \1)打印。

例子:

$ sed -nr 's/.*href="([^"]*)".*/\1/p' ~/.local/share/recently-used.xbel
file:///media/truecrypt8/bar.txt
file:///media/truecrypt8/picture.txt
file:///media/truecrypt8/bob.txt
file:///media/truecrypt8/movie.txt
file:///media/truecrypt8/music.txt
file:///media/truecrypt8/foo.txt
Run Code Online (Sandbox Code Playgroud)

如果你想格式化输出然后运行这个,

$ sed -nr 's/.*href="([^"]*)".*/\1/p' ~/.local/share/recently-used.xbel | sed 's|\/\/| |g'
file: /media/truecrypt8/bar.txt
file: /media/truecrypt8/picture.txt
file: /media/truecrypt8/bob.txt
file: /media/truecrypt8/movie.txt
file: /media/truecrypt8/music.txt
file: /media/truecrypt8/foo.txt
Run Code Online (Sandbox Code Playgroud)