• ベストアンサー

bashでタイムスタンプ比較して表示

bashでカレントディレクトリで更新日が2004年2月以降のファイルだけを 表示する場合どうすればよいでしょうか? 宜しくお願い致します。 filenames=$(ls) for temp in ${filenames[@]};do echo "$temp"  どうすれば? done

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

touch -t 200402010000 /tmp/ponpoko find . -type f -newer /tmp/ponpoko -print rm /tmp/ponpoko もしサブディレクトリが対象外なら、 find . -maxdepth 1 -type f -newer /tmp/flag -print

sha-girl
質問者

お礼

ご回答ありがとうございます。 ダミーのファイルを作ってfindで比較するわけですね。 大変参考になりました。

その他の回答 (1)

  • THX1138
  • ベストアンサー率51% (108/208)
回答No.2

find コマンドを使えばよいでしょう newer オプションで「指定したファイルより新しいファイル」 を指定することができます。 その際更新日が 1/31 のファイルを指定する必要がありますが、 なければ touch コマンドで作ってしまえばよいかと思います。 host% touch -t 200401312359.59 foo host% find . -newer foo なお、この場合サブディレクトリも 検索対象になりますが 不要である場合は maxdepth オプションで 最大探索階層の指定をしてください (GNU 版特有オプション) host% find . -newer foo -maxdepth 1

参考URL:
http://www.linux.or.jp/JM/html/GNU_findutils/man1/find.1.html
sha-girl
質問者

お礼

丁寧にお答えくださり有難うございます。 やはりダミーファイルを作ってfindするのが簡単なようですね。

関連するQ&A