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

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

如何使用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,但我想要从 开始的绝对路径/

答案1

使用带绝对路径的 find。

find /path/ -size +20M

它将打印整个路径。
如果您不知道工作目录,请使用命令替换,如下pwd所示:

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

获取您的工作目录

不管怎样,看来 Bash man 现在建议使用$()over``所以你应该使用第二种形式。您也可以直接引用包含$PWD脚本工作目录的变量,如果必须在循环中使用,它可能会更快。

find "$PWD" -size +20M

答案2

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

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

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

答案3

列出 7 天前的所有 PNG 和 JPEG 文件,并带有绝对路径。

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

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

相关内容