ディレクトリ内のファイルで、日付が最も古い&(且つ)サイズが小さいものを削除するシェルを作成しようと考えています。
当初の以下のような考えをしていましたが、うまくいかないので質問しました・・・
ls -lStr(カレントディレクトリで日付が古くサイズが小さい順のつもり・・・)
上記のコマンド実行にて、
合計 100
-rwxr-xr-x 1 root root 333 2月 22 2009 java.log
と表示されるのを利用し、上から2行目のファイル名を取得するためawkして『java.log』というファイル名をprintfで表示させ変数か何かに格納し、rmコマンドで削除という流れを考えていました。
よくよく考えると
・ls -lStr は本当に日付が古くサイズが小さいものでソートされているのか
・lsコマンドで表示した『2行目』という指定でファイル名の取得できるのか
がよくわからなくなってしまいました。
上記の考え方よりこっちのほうが良い!やアドバイスがあれば非常に嬉しいです。
よろしくお願いしますm(__)m
No.1ベストアンサー
- 回答日時:
「最も古い&(且つ)サイズが小さいもの」は、ちょっと意味が不明です。
両方の条件が成り立つとはかぎりません。「最古だけどファイルサイズが最小ではないもの」
「最古ではないけどファイルサイズは最小のもの」
の2つのファイルがある場合、どちらが削除対象ですか?
「最小ではなくても、とにかく最古」が対象なら、ls -tr
「最古ではなくても、とにかく最小」が対象なら、ls -Sr
になるでしょう。
あと、lsのソート順オプションが決まったとして、その一覧の先頭に来ているファイルを削除する方法についてですが、
ls に-l オプションを付ける必要はないでしょう。
-lオプションなしならファイル名だけが表示されますから、それがそのまま削除対象として使えます。
あとは、head コマンドを使って
ls -tr | head -1
で、lsの結果の先頭1行だけが表示されますから、
rm `ls -tr | head -1`
とすれば、そのファイルだけが削除されます。
(これは、最古の1ファイルを削除する例になります)
最初の条件はディレクトリ内にある更新が古い日付順(同日同時刻ファイル複数)
でソートし、さらに同日同時刻の古い複数ファイルの中でファイルサイズが小さいもの
でソートというイメージでした。
1.最古の日付でソート
2.1.の中で更にサイズでソート
のような感じです。
ちなみにlsの件はできました!ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- その他(動画サービス) VLCメディアプレーヤーについて 1 2022/11/29 14:19
- Windows 10 この現象も、Microsoft Explorer のお粗末な仕様のためか? 2 2023/06/09 15:06
- その他(プログラミング・Web制作) Linuxについて質問です。 引数に指定されたアクセスログのファイルからアクセス数が多い順に上位3つ 1 2023/02/03 03:46
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/03/28 14:52
- その他(クラウドサービス・オンラインストレージ) ヤマップは自分のアルバムになるか 1 2022/11/08 17:20
- Windows 10 win10 立ち上げ時のエラー 1 2023/04/17 11:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Dirコマンドでフォルダ内ファイ...
-
ラズパイで『’test.service’をs...
-
テキストファイルから最終行の抽出
-
ファイル名についている「-」と...
-
DOSコマンドのFOR文で空白を含...
-
xcopyのエラー情報のはき...
-
scpコマンドで、「追記」のオプ...
-
ごみ箱に入れるWindows コマン...
-
ファイル名一覧の印刷
-
DUとLSの表示の差
-
ファイルが消せない、移動でき...
-
"ls -l"でのタイムスタンプ表示...
-
DOS コマンドの~zfの意味を教え...
-
ファイル編集について
-
lsでは一画面ずつ表示できませ...
-
findとxargsの使い方で
-
CentOS7でTar/Gzip圧縮が失敗し...
-
cpコマンドとオーナー・グルー...
-
Cygwinのコマンドラインから.ba...
-
DOSコマンド 「forfiles」につ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Dirコマンドでフォルダ内ファイ...
-
ファイル名についている「-」と...
-
テキストファイルから最終行の抽出
-
ラズパイで『’test.service’をs...
-
xcopyのエラー情報のはき...
-
DOSコマンドのFOR文で空白を含...
-
Linuxで標準出力したファイルの...
-
oracleの文字コードとlinuxサー...
-
DOS コマンドの~zfの意味を教え...
-
batファイルの強制終了を回避し...
-
ファイル名一覧の印刷
-
win11のエクスプローラーの右ク...
-
特定の更新日付のファイルのみ...
-
数字を複数回繰り返す正規表現...
-
コマンドプロンプト dir でのソ...
-
ファイル名の -(ハイフン)を _(...
-
TeXでの見出しの変更は可能でし...
-
Windowsバッチファイルで、隠し...
-
「Vmmem」のメモリ使用量が高い...
-
cpコマンドで強制的に上書きし...
おすすめ情報