アプリ版:「スタンプのみでお礼する」機能のリリースについて

Linuxについて質問です。
シェルスクリプト名をfind.shとして、以下の条件をすべて満たすファイルの詳しい情報を出力するようにしたいです。

補足
現在のディレクトリ以下のディレクトリにあるファイル(ディレクトリなどは除く)
シェルスクリプトの第1引数の数字が表す日数以降に更新されたファイル
シェルスクリプトの第2引数の数字が表す日数以前に更新されたファイル
シェルスクリプトの第3引数の数字が表すサイズ以上の大きさのファイル(ブロック数)
以下の使用例はyn210150のホームディレクトリで試したものなので、 他のユーザーでは出力結果は違うものになる。

(使用例)
現在のディレクトリの下にある30日以降から7日以前までに更新されたファイルで、 ファイルサイズが1ブロック(512バイト)以上のファイル。

% bash find.sh 30 7 1
-rw-rw-r-- 1 yn210150 yn210125 1131 12月 12 18:22 2022 ./unix/data2
-rw-rw-r-- 1 yn210150 yn210125 999 12月 12 18:22 2022 ./unix/data1

詳しい方教えてくださると助かります。

A 回答 (1件)

以下のようなシェルスクリプトを作成することで、上記の条件を満たすファイルの情報を出力することができます。



#!/bin/bash
find . -type f -mtime +$1 -mtime -$2 -size +$3k -ls

- find .: 現在のディレクトリ以下を検索対象とする
-type f: ファイル(ディレクトリなどは除く)
-mtime +$1: シェルスクリプトの第1引数の数字が表す日数以降に更新されたファイル
-mtime -$2: シェルスクリプトの第2引数の数字が表す日数以前に更新されたファイル
-size +$3k: シェルスクリプトの第3引数の数字が表すサイズ以上の大きさのファイル(ブロック数)
-ls: 詳しい情報を出力する

このスクリプトを保存し、実行権限を与えてから実行します。

$ chmod +x find.sh
$ ./find.sh 30 7 1
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!