web-dev-qa-db-ja.com

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から始まるパスを示していますが、/からの絶対パスが必要です。

11
Shivam Sharma

絶対パスを指定して検索を使用します。

_find /path/ -size +20M
_

パス全体を出力します。
作業ディレクトリがわからない場合は、次のようにpwdの代わりにコマンドを使用します。

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

作業ディレクトリを取得するには

とにかく、Bash manは_``_ではなく$()を使用するようにアドバイスしているようですので、2番目の形式を使用する必要があります。おそらく、スクリプトの作業ディレクトリを含む_$PWD_変数を直接参照することもできます。ループで使用する必要がある場合は、おそらくより高速です。

_find "$PWD" -size +20M
_
16
Kiwy

pwdコマンドを使用するか、ファイルrealpathを印刷できます。

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

実際の両方のコマンドは、ファイルへの絶対パスを提供します。

8
Spack

絶対パスで7日経過したすべてのPNGおよびJPEGファイルを一覧表示します。

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

ここに $PWDは、一致したすべてのファイルに追加されます。

0
aty