- ベストアンサー
bashでタイムスタンプ比較して表示
bashでカレントディレクトリで更新日が2004年2月以降のファイルだけを 表示する場合どうすればよいでしょうか? 宜しくお願い致します。 filenames=$(ls) for temp in ${filenames[@]};do echo "$temp" どうすれば? done
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
touch -t 200402010000 /tmp/ponpoko find . -type f -newer /tmp/ponpoko -print rm /tmp/ponpoko もしサブディレクトリが対象外なら、 find . -maxdepth 1 -type f -newer /tmp/flag -print
その他の回答 (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
質問者
お礼
丁寧にお答えくださり有難うございます。 やはりダミーファイルを作ってfindするのが簡単なようですね。
お礼
ご回答ありがとうございます。 ダミーのファイルを作ってfindで比較するわけですね。 大変参考になりました。