如何快速获取文件的完整路径以便在终端中使用?

如何快速获取文件的完整路径以便在终端中使用?

readlink -f foo.bar 

或(先安装)

 realpath foo.bar 

只需将文件拖放到终端即可。

所有好的答案; 这是另一种情况的提示。

如果您使用nautilus浏览文件,并且想要当前目录的完整路径,请按CTRL+L 这会将面包屑按钮临时更改回旧式地址栏,允许您复制路径。

如果它是可执行文件,则执行(在终端中):

$ which your_executable

例如: $ which ls

除了拖动图标外,还有几种方法可以在没有鹦鹉螺的情况下获得完整路径(或thunar,konqueror等)。 然后,您可以三击或单击并拖放并复制,可能会将其保存在剪贴板管理器*中,并将其粘贴到您需要的位置。
(pastie,klipper,glippy,glipper,anamnesis)

  • 您可以在文件上方的目录中使用find 。 (如果您不知道它在哪里,请从您的主目录顶部开始,[通常]在您的主目录的顶部开始。)
    find . | egrep filename

  • 您可以使用locate来获取文件名。 (如果最近没有完成,请运行sudo updatedb 。)

使用find的一个更现实的例子是:

 $ find | egrep askubuntu | grep txt ./askubuntu-temp.txt ./drDocuments/web/meta.askubuntu.txt ./other/stuff/askubuntu.txt.iteration.1 ./other/stuff/askubuntu.txt.iteration.2 [...] 

删除你不喜欢的那些,例如:

 find | egrep askubuntu | grep txt | egrep -v iteration find | egrep askubuntu | grep txt | egrep -v 'iteration|meta|other' 

locate的使用方式大致相同,但grep通常更为必要:

 locate myfile | egrep home | egrep -v 'mozilla|cache|local|bin|\.pyc|test' | grep \.py 

这不是输入它的最有效方法,但通常如果我丢失了一个文件,我会迭代地执行此操作,并按照我的方式添加grep子句。

使用os.realpath()函数在python中轻松完成:

 $ python -c 'import os,sys;print(os.path.realpath(sys.argv[1]))' ./VirtualBox\ VMs/ /mnt/HDD/VirtualBox VMs 

如果只是在Nautilus中复制文件,则会复制完整路径。
然后将其粘贴到终端中。 只需粘贴即可获得:

 file:///home/juan/2017/agenda20170101.html 

如果右键单击并选择“粘贴文件名”,则会得到:

 '/home/juan/2017/agenda20170101.html' 

如图所示。
这与Windows不同,它复制文件内容而不是其名称。