inode指定でファイルを削除するシェルスクリプト
FTPサーバで、ファイル名がSJISのままPUTされて、普通に削除できくなる場合があります。
対処として、inodeを指定して手作業で削除する方法はよく知られています。
cronで削除するため、シェルスクリプト化してみました。
/dataの配下でhogeユーザがオーナーのファイルのみ削除するサンプルです。
検証はCentOS 8.0で行いました。
delinode.sh
# !/usr/bin/bash
for item in $(ls -i $(find /data -type f -user hoge) | awk '{print $1}') ; do
find . -inum ${item} -exec rm -rf {} \;
done