A) 次のコードを使用してファイルの修正日を取得します。ただし、これはサブディレクトリも選択するため、エラーを返します。この問題をどのように解決できますか?
for file in $1/*; do
echo `stat -c %y $file | cut -d ' ' -f1`
done
$ 1は私が渡したディレクトリです。
B)他の方法はありますか?ディレクトリと日付範囲をコマンドライン引数として渡し、その日付範囲内のファイルと変更日を一覧表示する必要があります。たとえば、output.sh /home/user/desktop 2014-10-07 2014-11-17
その時間間隔で変更されたそのディレクトリ内のすべてのファイルを一覧表示する必要があります。
答え1
$1
1000分以上、2000分以上のディレクトリですべてのファイルを検索するには、次の手順を実行します。
find "$1" -maxdepth 1 -type f -mmin +1000 -mmin -2000
サブディレクトリを再帰的に検索するには、を削除します-maxdepth 1
。
分ではなく整数で時間を指定するには、次のようにします-mtime
。
find . -maxdepth 1 -type f -mtime +20 -mtime -26
ディレクトリをスキップしたときにファイルを繰り返す
-d
ディレクトリをテストしてスキップするために使用できますcontinue
。
for file in "$1"/*; do
[ -d "$file" ] && continue
echo $(stat -c %y $file | cut -d ' ' -f1)
done