Linuxでファイルが作成されたらすぐに別のディレクトリにファイルを移動する方法は? [コピー]

Linuxでファイルが作成されたらすぐに別のディレクトリにファイルを移動する方法は? [コピー]

あるディレクトリに作成されたすべての* .xxxファイルを別のディレクトリに移動したいと思います。ただし、ファイルが作成されたら、別のディレクトリに移動する必要があります。助けてください。よろしくお願いします。

答え1

  1. ディストリビューションにパッケージをインストールしますinotify-tools
  2. inotifywait目的のディレクトリの連続検索を作成するには、このコマンドを使用します。前任者: inotifywait -m -r -e create /src_dir。このツールはファイルシステムの他の側面(属性の変更、書き込みの閉じ、移動、削除)を観察できるので、ファイルを作成し続けます。
  3. 通知を準備して実行し続けるには、このコマンドを使用し、十分な権限を持つユーザーとしてこのコマンドを実行します。

    inotifywait -m -r -e create /src_dir |
    while read file; do
          mv /src_dir/*.xxx /dst_dir
    done
    

上海:

  • inotifywait- inotify APIを使用するコマンド。ファイルシステムイベントを監視するためのメカニズムを提供します。man inotifyもっと学ぶ。
  • -minotifywait- 最初のイベントが発生した後も引き続き実行されます。
  • -r- 再帰的に実行します。この動作を望まない場合は削除してください。
  • -e create- 識別されたイベント通知。我々は生成を使用しています。既知のすべてのイベントを監視するには、このパラメーターを省略してください。
  • /src_dir- 監視される場所のパラメータ
  • |- パイプラインオペレータ。あるコマンドの出力を別のコマンドの出力にリダイレクトします。
  • /while (...) done- 名前が* .xxxのすべてのコンテンツを/src_dir名前付きターゲットに移動します/dst_dir。このループは、コマンドがイベントをトリガーするたびにこの動きが発生することを保証しますinotifywait

人間の地図から抽出された:

-m, --monitor
Instead  of  exiting  after  receiving  a single event, execute indefinitely.  
The default behaviour is to exit after the first event occurs.

-e <event>, --event <event>
Listen for specific event(s) only.  The events which can be listened for are 
listed in the EVENTS section.  This option can be speci‐fied more than once.  
If omitted, all events are listened for.

-r, --recursive
Watch all subdirectories of any directories passed as arguments.  Watches will be
set up recursively to an unlimited depth.  Symbolic links are not traversed.
 Newly created subdirectories will also be watched.

関連情報