1

ラジオ音楽をリッピングするプログラムを使用しています。悲しいことに、完成した mp3 が後で終わるフォルダーとは別に一時フォルダーを設定することはできません。そのため、出力フォルダーを iTunes に自動追加するように設定できません。

私はJavaのコーディングには問題ありませんが、シェルスクリプトの経験はありません。

フォルダー内のすべてのファイルを 10 分ごとに反復処理し、"Track" という文字列で始まらない場合は別の場所に移動するスクリプトが必要です。すべての一時ファイルは「トラック...」と呼ばれるため、完了したファイルのみを移動する必要があります。誰でも始めるのを手伝ってもらえますか? ありがとう!

4

2 に答える 2

0

スクリプトの例を次に示します。ファイルを移動する行のコメントを解除する前に、DESTINATIONディレクトリを適切に設定する必要があります。そうしないと、それらを望ましくない場所に移動してしまう可能性があります。

ターミナルで、以下のスニペットを保存する場所にcdし、次のコマンドを実行して実行します。

準備作業:

  • cd / save / location
  • chmod + x file_mover.sh#ファイルを実行可能にします

ジョブをスケジュールします。

  • crontab -e
  • * / 10 * * * * /path/to/file_mover.sh
  • crontab -l#スケジュールされたジョブのリストを表示

いくつかの小さな調整を加えることで、これにCLIオプションを受け入れるようにすることができます。

#!/bin/bash 


# files to skip
REGEX='^TRACK'

# location to move the files
DESTINATION=/tmp/mydir

# directory to read from 
# PWD is the working directory
TARGET=${PWD}

# make the directory(ies) if it doesn't exists
if [ ! -f ${DESTINATION} ]; then
    mkdir -p ${DESTINATION}
fi

# get the collection of files in the 
for FILE in $( ls ${TARGET} )
do
    # if the current file does not begin with TRACK, move it
    if [[ ! ${FILE} =~ ${REGEX} ]]; then

        echo ${FILE}

        # SET THE DESTINATION DIRECTORY BEFORE UNCOMMENTING THE LINE BELOW

        # if [ -f ${FILE} ]; then # uncomment if you want to 
        # ensure it's a file and not a directory     
              # mv ${FILE} ${DESTINATION} # move the file 
        # fi # uncomment to ensure it's a file (end if)
    fi
done
于 2012-10-06T11:48:49.267 に答える
0

crontab を編集して、EDITOR=nano crontab -e次のような行を追加します。

*/10 * * * * shopt -s extglob; mv ~/Music/Temp/!(Track)*.mp3 ~/Music/iTunes/iTunes\ Media/Automatically\ Add\ to\ iTunes.localized/

shopt -s extglobのサポートを追加し!()ます。を参照してください/usr/share/doc/bash/bash.html

于 2012-10-07T12:29:10.990 に答える