最大のファイルを1つだけ保持し、他のファイルをすべて削除する方法

最大のファイルを1つだけ保持し、他のファイルをすべて削除する方法

以下のように、同じディレクトリに3〜4個のファイルがあります。

AAA.360p.mp4
AAA.450p.mp4
AAA.720p.mp4
AAA.1080p.mp4

これらのファイルのファイル名は、フレーム解像度表現を除いてほぼ同じです。

(AAAはファイル名の一例です。フレーム解像度を除いて、ファイル名が同じであることを示します。)

そして、AAAの間にはいくつかの点があります。

たとえば、ファイル名は次のようになります。

Interesting.Comedy.E10.200406.450p.mp4
Interesting.Comedy.E10.200406.720p.mp4
Interesting.Comedy.E10.200406.1080p.mp4

ファイルごとにサイズが異なります

(ファイルサイズ:360p < 450p < 720p < 1080p)→常に。

最大のファイルは1つだけ保持し、残りはすべて削除したいと思います。

ディレクトリの場所は/volume1/video/

Synology でのみコマンドを実行します。 (コントロールパネルでジョブスケジューラを使用してください)

説明すれば、上記のように私の場合のディレクトリパスも一緒に入れてください。

(私が理解していないので、私が推薦したコードを適用できなかったので申し訳ありません。)

ベストアンサー1

以下のコードはあなたに適していますが、まずファイルのコピーを作成してそのディレクトリを試してみてください。

#!/bin/bash

var=`find /volume1/video/ -printf '%s %p\n'| sort -nr | head -n 1 | awk '{ print $2 }'`
largestfilename=`echo $var | rev | cut -d"/" -f1 | rev`

for i in `ls -S /volume1/video/`
do
        if [ ! $i == $largestfilename ]
        then
                rm -f /volume1/video/$i
        fi
done

おすすめ記事