2

Web サーバー上の多数の一時ファイルを削除する cron を介して毎週実行するスクリプトがありますが、スクリプトがまだスペースを占有しているフォルダーを削除していないことに気付きました。

フォルダも削除するようにスクリプトを修正するのに最適なものは何ですか?

find /my/path/ -type d –ctime +5 –exec rm -r {} \;

#!/bin/bash
# Deletes temp files older then 5 days
DOCS='/var/www/user/docs/temp'
SCRATCH='/var/www/user/temp/scratch'

if [ -d "$DOCS" ]; then
find $DOCSJS -type f -mtime +5 -exec rm -rf {} \; > /tmp/docs.txt
fi
if [ -d "$SCRATCH" ]; then
find $SCRATCH -type f -mtime +5 -exec rm -rf {} \; > /tmp/docs.txt
fi

私のスクリプトには、実際にはすべてのフォルダーを削除するためのフラグとして -rf があります。

注意すべき点の 1 つは、上記のフォルダーがシンボリック リンクであることです。スクリプトはシンボリック リンクを/mnt/sdb1/docs/jsたどり/mnt/sdb1/temp/scratchますか、それともマウントにハード コードする必要がありますか?

4

4 に答える 4

0

これを変える

if [ -d "$SCRATCH" ]; then
find $SCRATCH -type f -mtime +5 -exec rm -rf {} \; > /tmp/docs.txt
fi

の中へ

if [ -d "$SCRATCH" ]; then
find $SCRATCH -type d -mtime +5 -exec rm -rf {} \; > /tmp/docs.txt
fi

-type fフラグを使用してファイルのみを検索します。-type dディレクトリに使用

于 2013-04-17T09:52:18.420 に答える
0

find現在、 の出力はファイルに限定されているため、ディレクトリを削除することはできません。古いファイルとディレクトリの両方が に渡されるように、このオプションを削除する必要があります。rm -rf

find $DIR -mtime +5 -exec rm -rf {} \;

これにより、新しいファイルを含む古いディレクトリが保持されますが (ただし、古いファイルは削除されます)、古いファイルとディレクトリの両方が削除されます。

于 2013-04-17T09:54:14.060 に答える
0

これを変える:

find $DOCSJS -type f -mtime +5 -exec rm

に:

find $DOCSJS -type f -mtime +5 -exec rm -Rf
于 2013-04-17T09:28:42.707 に答える