pwd がファイルを削除する正しいディレクトリであることを確認してください (ファイル名に通常の文字のみが含まれていると仮定します):
ls -A1t | tail -n +11 | xargs rm
最新の 10 個のファイルを保持します。これをカメラ プログラム 'motion' で使用して、最新のフレーム グラブ ファイルを保持します。方法を教えてくれたので、すべての進行中の回答に感謝します。
find
は、この種のタスクの一般的なツールです:
find ./my_dir -mtime +10 -type f -delete
説明
./my_dir
あなたのディレクトリ (あなた自身のものに置き換えてください)-mtime +10
10 日以上経っている-type f
ファイルのみ-delete
驚くことではありません。 削除してfind
をテストします コマンド全体を実行する前にフィルタ
./my_dir
に注意してください 悪い驚きを避けるために存在します!
この種のことを行う適切な方法は、 logrotate
を使用することです .
これを試してください:
ls -t | sed -e '1,10d' | xargs -d '\n' rm
これは、ファイル名のすべての文字 (改行を除く) を処理する必要があります。
ここで何が起こっているのですか?
ls -t
現在のディレクトリ内のすべてのファイルを変更時間の降順で一覧表示します。つまり、最近変更されたファイルが最初になり、1 行に 1 つのファイル名になります。sed -e '1,10d'
最初の 10 行、つまり最新の 10 個のファイルを削除します。tail
の代わりにこれを使用しますtail -n +10
が必要かどうか思い出せないから またはtail -n +11
.xargs -d '\n' rm
各入力行を (終了改行なしで) 収集し、各行を引数としてrm
に渡します .
この種のものと同様に、安全な場所で実験してください。