如何通过使用find unix命令获取绝对路径


11

如何使用find命令获取绝对路径。
实际上我正在运行以下脚本:

find . -size +20M | while read a
do
     i=$(echo $a | sed 's:/: :g')
     echo $a;
     j=($i)
     fileName=${j[${#j[@]}-1]}
     userName=${j[${#j[@]}-3]}
done

但是这里变量$a显示从开始的路径,./Downloads/filename但我想要从的绝对路径/

Answers:


16

将find与绝对路径一起使用。

find /path/ -size +20M

它将打印整个路径。
如果您不知道工作目录,则使用命令替换来执行pwd以下操作:

find "`pwd`" -size +20M 
   #or like this:
find "$(pwd)" -size +20M

获取您的工作目录

无论如何,似乎Bash男人现在建议使用$()over,``所以您应该使用第二种形式。您也可以直接引用$PWD包含脚本工作目录的变量,如果必须在循环中使用,则可能会更快。

find "$PWD" -size +20M

但是我没有路,我只有路。作为当前目录呢?
Shivam Sharma 2014年

2
不要以开头.$(pwd)而要使用它,这将为您提供完整的路径。
bsd 2014年

8

您可以使用pwd命令或打印文件realpath

$ find "$(pwd)" -size +20M
$ find . -size +20M -exec realpath {} +

这两个命令都为您提供了文件的绝对路径。


但是第二个发现:`realpath':没有这样的文件或目录
Shivam Sharma 2014年

哼。尽管它是由coreutils软件包提供的,但也许您没有安装它。尝试使用找到它which realpath
Spack

它定位什么..
希瓦姆·沙玛

您正在使用哪个系统?
Spack

Linux BANE 3.7-trunk-amd64#1 SMP Debian 3.7.2-0 + kali8 x86_64 GNU / Linux
Shivam Sharma

0

列出7天之内具有绝对路径的所有PNG和JPEG文件。

$ find $PWD/ -mtime -7 -print -exec grep -e ".png\|.jpg" {} \;

这里$PWD将被添加到每个匹配的文件中。

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.