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
から始まるパスを示していますが、/
からの絶対パスが必要です。
絶対パスを指定して検索を使用します。
_find /path/ -size +20M
_
パス全体を出力します。
作業ディレクトリがわからない場合は、次のようにpwd
の代わりにコマンドを使用します。
_find "`pwd`" -size +20M
#or like this:
find "$(pwd)" -size +20M
_
作業ディレクトリを取得するには
とにかく、Bash manは_``
_ではなく$()
を使用するようにアドバイスしているようですので、2番目の形式を使用する必要があります。おそらく、スクリプトの作業ディレクトリを含む_$PWD
_変数を直接参照することもできます。ループで使用する必要がある場合は、おそらくより高速です。
_find "$PWD" -size +20M
_
pwd
コマンドを使用するか、ファイルrealpath
を印刷できます。
$ find "$(pwd)" -size +20M
$ find . -size +20M -exec realpath {} +
実際の両方のコマンドは、ファイルへの絶対パスを提供します。
絶対パスで7日経過したすべてのPNGおよびJPEGファイルを一覧表示します。
$ find $PWD/ -mtime -7 -print -exec grep -e ".png\|.jpg" {} \;
ここに $PWD
は、一致したすべてのファイルに追加されます。