ファイル「badFiles」ファイルは、削除したいファイル名のリストを保持し、彼らは可能性がある中で「myDirsは」サブディレクトリのリストを保持していると仮定すると、以下の作業をする必要があります:
for file in `cat badFiles`
do
for dir in `cat myDirs`
do
[ -f ${dir}/${file} ] && rm ${dir}/${file}
done
done
ディレクトリのリストは、次のmyDirsファイルを作成せずに動作するはずです、あなたの現在の作業ディレクトリからすべてのサブディレクトリが含まれている場合:
01 SSHを介してこれを呼び出すに
、あなたは(この例では、私は、ロケーション$ {HOME} /bin/killImages.shを使用します)ファイルに以下のスクリプトの内容を置くことができます。
編集〜 /bin/killImages.shと入力し、以下の内容を使用してください。完了したら、書き込みして保存します。
#!/bin/bash
cd $1
for file in `cat ~/badFiles`
do
for dir in *
do
[ -d ${dir} ] && [ -f ${dir}/${file} ] && rm ${dir}/${file}
done
done
その後、あなたのスクリプトを実行可能にする:あなたは、
ssh <user>@<hostname> "bin/killImages.sh /path/to/base/html"
を手動で最初の悪いファイルのリストをアップロードする必要がある場合になります。実行し、ローカルシステム上で次に
chmod 700 ~/bin/killImages.sh
をスクリプトを開始する前にこれを適切な場所にスキャンしてください:
scp badFiles <user>@<hostname>:.
ssh <user>@<hostname> "bin/killImages.sh /path/to/base/html"
これが役に立ちます。
それは試してみると良い見えます! – blablaman4000
badFilesのファイルの種類。それは何かの行ごとに1つの.txtファイルですか? @ paul-h – blablaman4000
すべてのファイルが "image *"または "image * jpg"のパターンと一致する場合、私はLucianがfindを利用することを提案します。はい、これはすべてのサブディレクトリを走査します。それがあなたが望むものではない場合(あなたは1つのレベルを開始ディレクトリよりも深くしたい)、これは-depthフラグで制御できます。 –