如何快速获取文件的完整路径以便在终端中使用?
如何快速获取文件的完整路径以便在终端中使用?
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不同,它复制文件内容而不是其名称。