ダウンロード完了後にコマンドを自動的に実行するにはどうすればよいですか?

ダウンロード完了後にコマンドを自動的に実行するにはどうすればよいですか?

ダウンロードが完了した後にコマンドを自動的に実行できる方法が必要です。

Firefox の統合ダウンロード ボタンをクリックした後、ダウンロードしたファイルの横にディレクトリを自動的に作成したいと思います。これらすべてを自動化したいです。

答え1

Firefoxの外でファイルをダウンロードできる場合は、

filetodownload=file-to-download.ext
wget http://www.example.org/"$filetodownload" -O "$filetodownload"
#"I want to create a directory beside the downloaded file automatically"
#You didn't specify a dir name
mkdir "$filetodownload"

それ以外の場合は、ファイルのダウンロードの進行状況を監視し、完了したら「ダウンロードしたファイルの横」にディレクトリを作成する必要があります。次の方法は私の場合はうまくいきました (ただし、ファイルと同じ名前のディレクトリは作成できませんでした)。ただし、隠しファイルも含め、すべてのファイルを調べます。必要に応じて変更してください。

#! /bin/bash
while [ 1 ]
 do
  for files in $(find . -maxdepth 1 -mmin -1 -type f)
   do
    testbefore=$(ls -l $files | awk '{print $5$6$7$8$9}')
    sleep 2
    testafter=$(ls -l $files | awk '{print $5$6$7$8$9}')
    if [ $testbefore = $testafter ]
     then
#     echo $testbefore
     mkdir $(basename "$files")_
    fi
   sleep 5
  done
 done

答え2

  1. neverAsk.openFileにMIMEタイプを追加します(すべてにabout:config追加できます)*/*
  2. 次の実行可能スクリプトを作成します。
    • 引数リスト(最初の引数)からファイルパスを取得します。
    • それをターゲットの場所に移動します(ダウンロードされた場所と同じtmp
    • 必要なコマンドを実行します
  3. Firefoxにスクリプトでこのファイルタイプを開くように指示します

この最後の方法は簡単に実行できますが、 Firefox のプロファイル内のファイルabout:preferencesにレコードを手動で追加する場合は少し難しくなります。mimeTypes.rdf

答え3

Firefox は一時的な名前 $f.part でファイルをダウンロードし、ダウンロードが完了すると名前を $f に変更します。

inotifywaitまたはのようなツールを使ってディレクトリの変更を監視することができます。ウォッチメド

inotifywait -m .
...
./ MOVED_FROM file.zip.part
./ MOVED_TO file.zip

関連情報