1

スクリプト内に次のコード行が見つかりました。この次のコード行の意味を誰かに説明してもらえますか?

基本的に、この行の目的は、アーカイブするファイルのセットを見つけることです。私はbashスクリプトに精通していないため、このコード行を理解するのは困難です。

_filelist=`cd ${_path}; find . -type f -mtime ${ARCHIVE_DELAY} -name "${_filename}" -not -name "${_ignore_filename}" -not -name "${_ignore_filename2}"`
4

3 に答える 3

4

バッククォート( `)記号は、コマンドの出力を変数に割り当てます。
スクリプトは、取得したものを$_filelistに割り当てています。

  1. ディレクトリを$_pathに変更します
  2. 現在のディレクトリ(。)ファイル(-type f)で検索する場所
    1. 名前は$_filename(パターンだと思います)
    2. 名前が$_ignore_filenameまたは$_ignore_filename2ではありません

CDなしに変更してもいいと思いますがfind ${_path} ...、ぜひお試しください。

于 2012-05-02T08:51:43.680 に答える
4

それを分解しましょう:

cd ${_path}${_path}:変数に保存されているディレクトリに変更します

find次の基準に基づいてファイルを検索するために使用されます。

  • .:現在のディレクトリを調べて、すべてのサブディレクトリを繰り返します
  • -type f:通常のファイルのみを検索します(ディレクトリは検索しません)
  • -mtime ${ARCHIVE_DELAY}${ARCHIVE_DELAY}*24:最後に変更された数時間前のファイルを探す
  • -name "${_filename}":名前が一致するファイルを探す${_filename}
  • -not -name "${_ignore_filename}":名前が一致するファイルが見つかりません${_ignore_filename}
  • -not -name "${_ignore_filename2}":名前が一致するファイルが見つかりません${_ignore_filename2}

見つかったすべてのファイルは、と呼ばれる変数に格納されます_filelist

于 2012-05-02T08:54:34.000 に答える
1
_filelist=`somecode`

変数_filelistにコマンドsomecodeの出力が含まれるようにします。

この場合のSomecodeは、ほとんどの場合、ファイルを再帰的に検索するfindコマンドです。

find . -type f -mtime ${ARCHIVE_DELAY} -name "${_filename}" -not -name "${_ignore_filename}" -not -name "${_ignore_filename2}"

find .

現在のディレクトリを検索しますが、これは_pathに変更される直前でした。

-type f

通常のファイルのみを検索します(dirs、socketsなどは検索しません)。

-mtime

そのファイルの変更時間を${ARCHIVE_DELAY}と同じに指定します

-name explains

それ自体は「${_filename}」である必要があります

-not name

それ自体も説明していると思います。

そのため、全体で変数filelistがファイルに設定され、名前、年齢、タイプなどの基準によって検出されます。

于 2012-05-02T08:57:11.447 に答える