facebook twitter hatena line google mixi email

Linux/コマンドメモ/rm

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

サブも含めてディレクトリごと削除

rm -fr /var/.backup/tmp_export2/

30日以上たったログファイルを削除

find /tmp/log -name '*.log' -mtime '+30' -exec rm -f {} \;

こちらのほうが高速?

find /tmp/log -name '*.log' -type f -mtime '+30' -print | xargs rm

引数に付けたdirpath内の30日以上たったログファイルを削除

sh rmlog.sh var/log1 var/log2
  • rmlog.sh
#!/bin/bash
for dirpath in $@
do
  if expr "$dirpath" : "[A-z0-9][A-z0-9_-]*$" > /dev/null; then
#  if [[ "$dirpath" =~ ^[A-z0-9][_A-z0-9_-]*$ ]]; then
    if [ -e $dirpath ]; then
      find $dirpath -name '*.*' -type f -mtime '+30' | xargs --no-run-if-empty rm -v
    fi
  else
    echo "error dirpath=$dirpath"
  fi
done

ファイル削除

find /tmp/log -type f -exec rm {} \;

大量ファイル削除時( /bin/rm: 引数リストが長すぎます)エラー対処法

echo /tmp/*.log | xargs rm

参考:http://blog.mizoshiri.com/archives/150