タグ

shellscriptに関するshoronpooのブックマーク (2)

  • xargs コマンド | コマンドの使い方(Linux) | hydroculのメモ

    xargs コマンド 2015/05/13 ファイル名の一覧を標準入力から受け取って、そのファイル一覧を任意のコマンドに引数として渡すコマンド。ファイル一覧でなくてもなんでもよい。 わかりづらいので、例として、カレントディレクトリの配下にある拡張子が .txt のファイルをすべて削除したいとする。 まずはfindコマンドでリストアップする。 $ find . -name "*.txt" この結果が以下のようだったとする。 foo.txt sub/bar.txt これらを削除するには $ rm foo.txt sub/bar.txt を実行すればよいが、findの結果が大量にある場合はrmコマンドを手で書くのは手間なので、 findの結果をそのままrmに渡したい。rmコマンドが標準入力からファイル名を受け取ってくれるならパイプでつなぐだけだが、残念ながらrmにはパラメータで渡す必要がある。こ

    shoronpoo
    shoronpoo 2016/10/26
    異なるディレクトリにある、同じファイルや拡張子を一括で消す時にxargsが便利
  • ログアウトしてもバックグラウンド ジョブを継続する方法

    はじめに SSH 接続で時間の掛かるシェルスクリプトをバックグラウンドで走らせて帰りたいのに、SSH 接続を切るとジョブが死んでしまいます。SSH 接続に限らず目の前の OS からログアウトしたりターミナル エミュレータを終了しても同じ現象が起こります。 この症状は正常です。なぜなら、バックグラウンド ジョブを起動したプロセス(ログイン シェル)が子プロセスである該当のバックグラウンドジョブをハングアップ シグナル( HUP )によって終了させるからです。 シェルスクリプトを起動した親プロセスは子プロセスの終了状態を監視しています。ですからログアウトして親プロセスであるシェルが終了すると子プロセスはゾンビ プロセスとなってしまうので親プロセスとなるシェル(ログインシェル)は子プロセスであるバックグラウンド ジョブを kill ( kill -HUP ) するのです。 nohup コマンド

    ログアウトしてもバックグラウンド ジョブを継続する方法
  • 1