我知道如果您有一个文件one.txt
,那么~/Documents
您将打印:cd ~/Documents
realpath one.txt
~/Documents/one.txt
。
但是,如果您想打印不同目录中文件的路径该怎么办?例如,目录中cd a/b
有一个文件,那么人们如何通过传递给命令来打印绝对路径。two.txt
a2/b2
two.txt
two.txt
希望realpath two.txt
在不同的目录中做类似的事情。
答案1
只需给出realpath
当前目录的相对路径:
$ pwd
/home/myself/local/build/shell-toolbox
$ realpath ../../../.profile
/home/myself/.profile
如果我没有提示它所在的位置,GNUrealpath
实用程序将无法找到我的文件,或生成它的绝对路径。.profile
在您的情况下,您可能有任意数量的名为 的文件two.txt
,因此realpath
必须至少给出当前目录的相对路径,以便能够给出文件的绝对路径名。
在 Unix 文件系统中,一个文件由一个唯一标识路径名(相对或绝对)。 A文件名无法唯一标识除当前目录中的文件之一之外的任何文件。
two.txt
要找到主目录中或主目录下调用的所有常规文件,并获取它们相对于 的路径名$HOME
:
find "$HOME" -type f -name two.txt