如何在Mac OSX终端中显示文件的完整路径,包括完整文件名?


40

“ ls”可以显示文件名,例如

ls config.inc.php
config.inc.php 

'pwd'显示当前文件夹的完整路径,例如

pwd
/Application/XAMPP/xamppfiles/phpmyadmin

有没有可以将它们放在一起的命令,将能够显示:

/Application/XAMPP/xamppfiles/phpmyadmin/config.inc.php

Answers:




9

在Mac OSX中,执行以下步骤:

  1. cd 到目标文件的目录中。
  2. 键入以下任一终端命令。
终奌站
ls "`pwd`/file.txt"
echo $(pwd)/file.txt
  1. file.txt用您的实际文件名替换。
  2. Enter

2

您也可以使用“查找”命令列出具有完整路径的所有文件:

find DirectoryName -type f

或仅以下内容:

find . -type f

1
这不会返回绝对路径(这似乎是OP所寻找的)
Ad

2

不喜欢任何给定的解决方案,因此我根据https://stackoverflow.com/a/22684652/953327组成了自己的解决方案

创建别名,该别名只是结合了pwd和的函数调用ls $1。然后,您可以根据需要将其添加到您的.bash_profile

alias lsf='function _lsf(){ echo "$(pwd)/$(ls $1)"; };_lsf'

使用示例:

lsf registry.lock
-> /tmp/registry.lock

我选择lsf了“完整列表”或“列表文件”,这对我来说很有意义,但可以随时进行修改。


更新(感谢@ santiago-arizti)能够将其用于相对路径(例如lsf ../../readme.md

alias lsf='function _lsf(){ (cd $(dirname "$1") && echo $(pwd)/$(basename "$1")) };_lsf'

我需要这样打电话给我,lsf ../../readme.md所以我对您的版本做了一些改动alias lsf='function _lsf(){ (cd $(dirname "$1") && echo $(pwd)/$(basename "$1")) };_lsf'
圣地亚哥·亚利桑那

希望您不要介意,我添加了自己的答案,但在$ PATH目录中使用了脚本而不是
别名

2

我想要的比您需要的更多,我还需要能够查询相对目录中的文件,例如../../readme.md,结果应该是/Users/santi/readme.md

因此,我在被$PATH调用的文件夹中创建了一个(可执行)脚本,其lsf内容如下:

#!/bin/bash
F=${1:?'usage lsf ../../readme.md'}
( cd $(dirname "$F") && echo $(pwd)/$(basename "$F") )

因此,您可以像这样使用它:

santi@santis-mac:~/p/dir1/dir2$ lsf ../../readme.md 
/Users/santi/p/readme.md

没有参数给您警告

santi@santis-mac:~/p/dir1/dir2$ lsf
/Users/santi/bin/lsf: line 3: 1: usage lsf ../../readme.md

伪目录向您发出警告(由于dirname

santi@santis-mac:~/p/dir1/dir2$ lsf ../../fakedir/readme.md
/Users/santi/bin/lsf: line 5: cd: ../../fakedir: No such file or directory

伪造文件,但真实目录不会发出警告(您可以根据需要添加验证)

santi@santis-mac:~/p/dir1/dir2$ lsf ../../fakefile.md 
/Users/santi/p/fakefile.md

1

以下将在工作目录中找到一个匹配的文件file.txt并返回其绝对路径

find `pwd` -name file.txt

完善。654321
Jan Kyu Peblik

1

使用 realpath

例如:

$ realpath README.md 
/Users/joe/my/long/directory/structure/README.md

在stackoverflow上回答以下问题:https : //stackoverflow.com/a/3915075/441960

仅供参考,我的MacOS(OSX)版本:

$ uname -a
Darwin my-machine 18.7.0 Darwin Kernel Version 18.7.0: Tue Aug 20 16:57:14 PDT 2019; root:xnu-4903.271.2~2/RELEASE_X86_64 x86_64
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.