プロセスがディレクトリ内のファイルを使用しているかどうかをテストする方法

プロセスがディレクトリ内のファイルを使用しているかどうかをテストする方法

ディレクトリ内のファイルが他のプログラムで使用されていない場合にのみ、ディレクトリを圧縮するためにIFステートメントでlsofを使用してみました。シェルプロンプトからこの情報を取得できます

lsof +d /mydir/

出力が返されない場合、ディレクトリは使用されません。これを条件文でフォーマットするにはどうすればよいですか?

if (lsof returns anything) then
  echo "$folder in use"
else
  tar $folder

ありがとう

ベストアンサー1

次のように答えの文字数を計算します。

#!/bin/bash

a="$(lsof +d "${folder}")"

if [[ "${#a}" -gt 0 ]] then
    echo "${folder} in use"
else
    tar "${folder}"
fi

おすすめ記事