今日、私たちはあなたができる方法をあなたに示します 'X'日より古いファイルを削除する。 7日より古いファイルを削除したい場合、この記事はそのために役立ちます。 検索ユーティリティを使用すると、各ファイルで別のコマンドを実行するなど、いくつかの興味深い引数を渡すことができます。 特定の日数より古いファイルを特定するために、これを使用します ユーティリティを見つける 次に、 rmコマンド それらを削除します。 コマンド構文は次のとおりです。
/ path / to / files * -mtime +5 -exec rm {} \;を検索します。
当社は、発生する可能性のあるデータ損失について責任を負いません。 私たちはあなたをお勧めしました ファイルを一覧表示して確認します それらを削除する前に、次のコマンドを実行します。
/ path / to / files * -mtime +5 -exec ls {} \;を検索します。
注: rm、{}、および\の間にスペースがあります。
コマンドの説明:
上記のコマンドの最初の引数は ファイルへのパス。 XNUMX番目の引数は - ファイルのmtime ファイルの古さを指定するために使用されます。 +5と入力すると、XNUMX日より古いファイルが検索されます。 最後の議論は -EXEC rmなどのコマンドを渡すことができます。 NS {} \; コマンドを終了するには、最後に必要です。
これは、Ubuntu、Fedora、Red Hat、SuseなどのほぼすべてのバージョンのLinuxで機能するはずです。ここではまったく不可能と思われる問題に直面している場合は、以下のコメントでお知らせください。
スラジュ・サランケ
私はこのトリックを使いました! 素晴らしいトリック! そのような良いトリックを共有してくれてありがとう:)
アムルタパティル
Ya私はRHCEの練習セッション中にこのカムマンドを使用しました。
ベン
find ./* -mtime +5 -exec ls {} \; >> ./5DaysOld
alias 5DayLs="find ./* -mtime +5 -exec ls {} \; >> ./5DaysOld"
ここであなたの提案から何かを一緒に作り上げました。 XNUMX日経過したファイルのプレーンテキストファイルリストを作成する方法。 ファイルを削除する前に表示するための記録を保持するのが簡単です。 その後、ユーザーはcat、vi、vim、gedit、emacsを使用して、何を投げ出すかを確認できます。
find ./* -mtime +5 -exec ls {} \; >> ./5DaysOld
内訳./は現在のディレクトリです。 / cannonを使用するよりも、多くの場合、現在のディレクトリを使用する方が安全です。 >>ファイルに追加します。ファイルが存在しない場合は作成されます。
エイリアスとして役立つかもしれないと思っても。 おそらく、最初にシェルスクリプトに移植することができます/すべきです。 でも怠惰なので、ここで遅くなります。
ベン・パイパー
ありがとう! 私はこの構文をcronジョブで使用しました。
ビビアン
特定の日より古いファイルを削除するための良いヒント。 ただし、引数リストが長い場合(最大値は65535か、それらの線に沿ったものだと思います)、これは機能しません。
私はその仕事をするカスタムスクリプトを持っています:
#!/bin/bash
cd /directory-to-be-checked
allfiles=`ls`
NOW=`date +%s`
for filename in $allfiles
do
OLD=`stat -c %Z $filename`
if [ "$2" == "" ]
then
DELAY=86400
else
let "DELAY=$2 * 86400"
fi
AGE=`expr $NOW - $OLD`
#echo "Delay is $DELAY and Age is $AGE"
#exit 0
if [ $AGE -gt $DELAY ]
then
#echo "File $filename is $AGE"
fstamp=`ls -l $filename`
if [ "$1" == "DEL" ]
then
echo "Deleting file $filename"
`rm -f $filename`
else
echo "$fstamp"
fi
fi
完了しました。
ラジェッシュナマセ
スクリプトを提供していただきありがとうございます。
ビビアン
なませへようこそ。
次のようにスクリプトを呼び出します。
./scriptname.sh DEL numDays
numDaysが指定されていない場合は、最小1が使用されるため、必ずnumDaysを指定してください。 このスクリプトの使用方法および発生する可能性のあるデータ損失について、私は責任を負いません。
Pawan
30日経過したDirとファイルをリモートマシンに削除し、1つと2つまたは3つのdirを除くXNUMXつのものが必要な場合、どうすればこれを実行できますか.. ?? あなたの考えを共有してください。
アリ
私はこのテクニックを使用しています。これは、Oracleでtrcファイルを削除するのに非常に便利です。
イーサン
この便利なコマンドをすべてのユーザーに共有していただきありがとうございます。 Linuxでは古いファイルを簡単に削除できます。 私もそれを探していて、ついにここで解決策を得ました。
グレッグ
これはサブディレクトリのファイルも取得しますか? もしそうなら、私はそれをどうやってやるのですか?
find / home / greg / logs -type f -mtime +5 -exec rm {};
スラジュ・サランケ
私はそのようなコマンドを探していました。 本当に役に立ちました。 そして、スクリプトを共有してくれてありがとう、ビビアン。