次のように、AIXの最後の5つのコピーを保持するbashスクリプトがあります。
rm `ls -lt /path/the_file_* | tail -n +6`
ただし、次のエラーが発生します。
rm: Not a recognized flag: w
修正する
このls
コマンドは以下を返します。
-rw-r--r-- 1 user group1 14 Mar 11 09:54 the_file_20130311.bz2
これについての手がかりはありますか?
ベストアンサー1
あなたが言うことは本質的に
rm -rw-r--r-- 1 user group1 14 Mar 11 09:54 the_file_20130311.bz2
つまり。再帰削除の名前は次のとおりです。
1
user
group1
14
Mar
...
-w
rmフラグやその他の奇妙なものがある場合-rw-r--r--
より良いオプションはを使用することです。出力がttyに行くかどうかを検出ls -t
できるため、別の行にいなくても心配しないでください。ls
たとえば、次のようになります。
ls -t | cat
しかし、別の問題が発生します。つまり、正しいディレクトリにないということです。だからあなたが言うのは実際に現在のディレクトリから/path/
。
したがって、最初に正しいパスにあることを確認したり、find
システムにGNUをインストールしたりできる場合、他のオプションは次の方向になります。
find /path/to/files -maxdepth 1 -type f -name 'the_file_*' -printf '%T@ %p\n' |
sort -nr | head -n6 | cut -f2- -d" "
正しいリストを取得するにはフルパスが必要です。
その後、良く見える場合は、rm
ルーチンに追加してください。