古いファイルからバックアップディレクトリをきれいにし、最新のN個しか残さないスクリプトを作成します。私もls
を使わずにやりたい私は以下のコードになってしまった最新のディレクトリ以外の古いファイルを削除するためのスクリプトN
昨日:GNU拡張せずにすべてのボックスを残して、使用されてfind -printf
があるよう
counter=0
while IFS=/ read -rd '' time file; do
((counter++ < ${KEEP_NUMBER:?})) && continue
rm -f "$file"
done < <(find . -maxdepth 1 -type f -printf "%[email protected]/%p\0" | sort -znr)
しかし、これは、すべてで移植性がありません。
このようなタスクを実行する方法はありますか?
'ls'はファイル時間を調べる唯一の標準ツールであるため、プラットフォーム固有の拡張の領域に移動せずに仕事をするのは難しいでしょう。例えば、GNUの 'stat'コマンドは、ファイル時間に関する情報を分析できますが、GNUの' find'よりも移植性が高い(またはそれ以下の)ものではありません。また、 "ファイル名にスペース、タブ、改行、改ページなどが含まれていますか?"という問題/問題があります。特に改行は怒りを引き起こす。 –