2016-09-14 19 views
-5

フォルダ内の大きなファイルを削除する必要があります(約2392934)。フォルダは、2015年のファイルに私は2015年のためのファイルを削除したい&年2016 が含まれており、そのために私は下のスクリプトを作成しました: -大きなファイルを削除する必要があります

echo 'going to gived path' 
cd /usr/local/nagios/var/spool/xidpe/ 
pwd 
b=$(ls -lrt | grep '2015' | awk '{print $9}') 
echo 'listen tail outcome' 
echo 'going to del' 
rm -rf $b 
exit 

が、それはエラーを与える: - ./test.sh: line 10: /bin/rm: Argument list too long

私もxargsを試してみました:b=$(ls -lrt | xargs '2016' | awk '{print $9}')

はエラーを与える: - xargs: 2016: No such file or directory

は変更は私のスクリプトまたは(のみ2015年用)これらのファイルを削除するには、他の方法で行われる必要があります。

+0

は何とかファイル名で識別される年であり、またはタイムスタンプでのみ? – Joni

答えて

0

年はファイル名で表示された場合:今までに一年前に作成されたファイルを削除するには

find /usr/local/nagios/var/spool/xidpe/ -type f -name '*2015*' -delete

find /usr/local/nagios/var/spool/xidpe/ -type f -ctime +365 -delete

+0

このコマンドは何も出力していません。このコマンドを実行した後にのみ空白の画面が表示されます。 rootログインからも。 –

+0

それはまさにそれがどのように動作するかです:それはそのパターンのすべてのファイルを削除し、何も言わない。 ファイルリストを事前に表示する場合は、最初に "-delete"を付けずにファイルリストを実行します。 –

関連する問題