タグ付けされた質問 「timestamps」

タイムスタンプは、エポック(19700101T00:00:00)からの秒数を指定するデータやその他の標準に関する質問、およびファイル名の(日付)と時間情報に使用されます。

1
ファイルをコピーしてタイムスタンプを追加します
ファイルをコピーし、名前にタイムスタンプを追加するスクリプトに2つの問題があります。 cp -ra /home/bpacheco/Test1 /home/bpacheco/Test2-$(date +"%m-%d-%y-%T") 上記はTest2ファイル名として追加されますが、この例ではという名前の元のソースファイルのファイル名を保持したいですTest。 cp -ra /home/bpacheco/Test1 /home/bpacheco/Test2-$(date +"%m-%d-%y-%r") もう1つの問題は%r、タイムスタンプコードとしてを追加すると、ターゲット「PM」がディレクトリではないことを示すエラーが表示されることです。タイムスタンプを12時間制として取得しようとしています。

5
指定されたファイルの年齢を取得
特定のファイルの経過日数を少なくとも何日で取得できますか? 私はよくls -lh似たコマンドを知っています。私は次のように機能するものが欲しい: getfage <FILE> # prints out '12d' (12 days) また、これはMac OS Xでも使用したいので、これは多少クロスプラットフォームである必要がありますが、主なユースケースはLinuxボックスにあります。 注意 Linuxは作成時間を追跡しないので、2つの解決策を探しています。1つはmtime(linux)で、もう1つはファイルが変更されたということです。もう1つはMac OS Xです。mtimeまたは作成時間。

7
エコー前のタイムスタンプ
echo?の前にタイムスタンプを作成するより良い方法が存在します。 現在私はこのようにしています: #!/bin/sh if mount | grep -q /mnt/usb; then echo `date +%R\ ` "usb device already mounted" else echo `date +%R\ ` "mounting usb device..." mount -t msdosfs /dev/da0s1 /mnt/usb if mount | grep -q /mnt/usb; then echo `date +%R\ ` "usb device successfully mounted" fi fi 出力は次のようになります。 10:36 …
12 shell  timestamps  echo 

3
POSIX shで-nt / -otテストを実行する
ビルトインtestおよび[ユーティリティは、シェルが「POSIXモード」で実行されている場合でも、ほとんどのシェルで-nt(「より新しい」)および-ot(「より古い」)テストを実行します(同じ名前の外部ユーティリティについても当てはまります)。私がアクセスできるシステム)。これらのテストは、2つのファイルの変更タイムスタンプを比較するためのものです。文書化されたセマンティクスは、実装ごとにわずかに異なります(一方または他方のファイルが存在しない場合に発生することに関して)が、POSIX仕様にtestは含まれていません。以下のためのユーティリティ。 test条件付きコマンドが[KornShell]シェルから削除されたとき、testユーティリティの歴史的な実装に組み込まれたユーティリティに含まれていないため、ユーティリティに引き継がれませんでしたsh。 /bin/shシェルスクリプト内のファイル間の変更タイムスタンプを比較し、次に、1つのファイルが他のファイルより新しいかどうかに応じてアクションを実行したいと仮定します。 if [ "$sigfile" -nt "$timestamp" ] || [ "$sigfile.tmp" -nt "$timestamp" ] then return fi ... make(スクリプトの残りの部分は控えめに言っても扱いにくくなる)以外に、他にどのユーティリティを使用できますか?または、「歴史的な実装」でスクリプトを実行shしたり、特定のシェルの作成を辞めたりする人は誰もいないと仮定する必要がありbashますか?
11 files  timestamps  posix  test 

5
ファイル名の日付より後にファイルが変更されたかどうかをテストする
次のように、ファイル名にYYYYMMDDで名前が付けられたファイルがあります。 file-name-20151002.txt このファイルが2015-10-02以降に変更されたかどうかを確認したいと思います。 ノート: の出力を確認することでこれを行うことができますlsが、の出力を解析することlsは悪い考えです。 特定の日付以降のすべてのファイルを見つける必要はありません。一度に1つの特定のファイルをテストするだけです。 作成後、同じ日にファイルが変更される心配はありません。つまり、この20151002名前のファイルが2015年10月3日以降に変更されたかどうかを知りたいだけです。 MacOs 10.9.5を使用しています。
11 bash  files  osx  timestamps 

3
ファイルのmtimeをエポック形式で設定するにはどうすればよいですか?
エポック形式でファイルのmtime を取得する方法を知っています。 stat --format=%Y <file> しかし、エポック形式でファイルのmtime を設定する方法を理解できませんでした。touch(1)のマニュアルページは、「タイムスタンプ」値​​(月、日、時間、分などを使用する多かれ少なかれ固定形式)または「ほとんど自由な形式の人間が読める日付文字列」のみを受け入れるようです。 調査する必要がある別のユーティリティはありますか? ありがとう。

4
Linuxシステムの時間は一時的にジャンプします
一部の(ハードウェア)サーバーで奇妙なシステム時刻の変更動作を見ました。次のように/var/logs/syslog、各ログメッセージの前の日付時刻が時々ランダムに変わり、次のメッセージで通常に戻ります。 Feb 22 2018 09:09:30 ... Feb 22 2018 09:09:32 ... Jan 13 2610 15:37:42 ... Feb 22 2018 09:09:33 ... Feb 22 2018 09:09:34 ... 例のように、日付時刻の突然の変化は、何百年も離れている可能性があります。 奇妙なタイムスタンプを持つログメッセージが特定のプロセスからのものではないことを確認できます。それは、すべてのプロセスでランダムに発生する可能性があります。 また、2つの異常な時間の変化の間の期間は数分から数時間の間で変化します(ただし、異常な時間の変化はより頻繁に発生する可能性がありますが、ログの書き込みが毎秒行われないため、それらの多くはsyslogに表示されません)。 また、複数のサーバーで発生するので、ハードウェアの問題ではないと思います。 サーバーに関する詳細:1つのコントローラーといくつかの計算ノードを備えたOpenStackインストールです。各サーバーでntpサービスが実行されています。コントローラーは、それ自体のハードウェアクロックから時間がかかるように構成され、計算ノードサーバーは、コントローラーからの時間を同期します。各サーバーには独自のペースで異常な時間の変化があることに注意してください。「間違った時間」はコントローラーからntpを介して同期されていないようです。 計算ノード上のゲストシステム(仮想マシン)がホストシステムの時間に影響を与える可能性があると考えていました。しかし、これは、仮想マシンを実行していないときにコントローラーに同じ問題がある理由を説明できません。 検出する方法が必要です。システム時刻を変更したのは誰ですか、どのように発生しますか
11 logs  timestamps  time 

3
stat:ファイルの変更タイムスタンプ
私はstat -f %m .bashrcosx上の.bashrcの変更時間を取得するために使用しています。しかし、ubuntuで同じコマンドを実行すると、エラーが発生します。 stat: cannot read file system information for %m': No such file or directory これを達成するための互換性のある方法はありますか?

2
GNU makeの前提条件としてHTTPからのファイルをどのように使用できますか?
私のメイクファイルの前提条件として、World Wide Webからのファイルを使用したいと思います。 local.dat: http://example.org/example.gz curl -s $< | gzip -d | transmogrify >$@ makeが正常に動作するのと同じように、リモートファイルがローカルファイルよりも新しい場合にのみ「変換」します。 example.gzのキャッシュコピーを保持したくありません。ファイルが大きく、生データは必要ありません。できれば、ファイルをダウンロードしないようにします。目標は、makeフラグを使用してこれらのいくつかを並行して処理することです。-j これを解決するきれいな方法は何ですか?いくつかの方法が考えられます。 空のダミーファイルを保管しておき、ターゲットが再作成されるたびに更新する GNU makeの新しいプラグインシステムを使用するプラグイン(私は何も知りません) ローカルファイルシステムにHTTPサーバーをマウントする不可知論的な方法 さらに掘り下げる前に、いくつかのアドバイス、できれば具体的な例をお願いします!


4
ファイルが変更されているかどうかを確認する
Linux(現在ext4ファイルシステムを使用している)では、ファイルの内容を読み取らずにファイルの内容が変更されているかどうかをすばやく確認するにはどうすればよいですか? あるstatコマンドが推奨されるアプローチ?私は現在します $ stat --format "%Y" hello.txt その後、同じコマンドで同じ出力が得られるかどうかを確認できます。そうであれば、hello.txtは変更されていないと結論付けます。 私は、より確実にするために、より多くのパラメーターを投入したいと考えています。たとえば、ファイルサイズ、ファイル名などを追加すると、ファイルのさらに優れた「フィンガープリント」が提供されますか? このトピックについて、TrueCryptがメタデータの変更を残さないようにしたためか、以前に使用したTrueCryptボリュームが常に増分バックアッププログラムによって無視されたことを思い出します。によって返されたすべてのデータを変更することは確かに可能だと思いstatます。そのため、ファイルの可能なすべての変更を取得することは保証できません。
10 files  timestamps  stat 

3
ミリ秒までの2つのタイムスタンプの違いを見つける方法は?
シェルスクリプトは初めてです。私のスクリプトの中心は、ミリ秒までの2つのタイムスタンプの違いを見つけることです。私と一緒に、タイムスタンプの内容のみを含むファイルがあります 2012-09-13 15:00:29,290 2012-09-13 15:00:29,297 2012-09-13 15:00:29,428 2012-09-13 15:00:29,447 このように、スクリプトを実行するときにパフォーマンスの問題に直面してはならない約30kのレコードがあります。うるう年、31日の月など、多くの要因がこのためのスクリプトを記述しようとしているときに思い浮かびます。 誰かが私を助けてくれますか?

5
普遍的な非bashの「時間」ベンチマークの代替?[閉まっている]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 3年前休業。 異なるシェル間でスクリプトの実行時間を比較するために、一部のSEの回答は、次のようにbashの組み込み timeコマンドの使用を提案しています。 time bash -c 'foo.sh' time dash -c 'foo.sh' ... など、すべてのシェルをテストします。このようなベンチマークでは、各シェルがそれ自体をロードして初期化するのにかかる時間を排除できません。例えば、上記のコマンドの両方が上に格納されたと仮定初期フロッピーディスクの読み出し速度と遅いデバイス、(124キロバイト/秒)、 dash(〜150K実行)についてロードする7Xより速くbash(〜1M)、シェル読み込み時間はtime数値を歪めます-これらのシェルの事前読み込み時間は、シェルが読み込まれた後のfoo.sh各シェルの下の実行時間の測定には関係ありません。 各シェル内から実行できるスクリプトタイミング用に実行するのに最適なポータブルで一般的なユーティリティは何ですか?したがって、上記のコードは次のようになります。 bash -c 'general_timer_util foo.sh' dash -c 'general_timer_util foo.sh' 注意:移植性や汎用性がないため、シェル組み込み timeコマンドはありません。 さらに、utilがシェルの内部コマンドとパイプラインにかかる時間をベンチマークでき、ユーザーが最初にそれらをスクリプトにラップする必要がない場合はさらに良いでしょう。このような人工的な構文は役に立ちます: general_timer_util "while read x ; do echo x ; done < foo" 一部のシェルtimeはこれを管理できます。たとえばbash -c "time while false ; do : ; done"動作します。システムで何が機能するか(そして機能しないか)を確認するには、次のことを試してください。 …

4
CLIを使用して日付でファイルを別のディレクトリに移動する
古いハードドライブから整理しようとしている写真がたくさんあります。を実行するとls -l、これらのすべてのファイルの作成日が2012年以前であることがわかります。理想的には、これらを自動的にマウントするように設定されていない私のコンピューターの2番目のハードドライブに移動したいと思います。できれば、いくつかのコマンドがリンクされたバッチとしてこれをすべて行うことができます。これまでのところ、ls -l | grep -i 2012によって提供された日付で2012のファイルのみを吐き出していますls -l。ここでの秘訣はcp、これらのファイルすべてを新しいディレクトリに配置することです。各ファイルをコピーする必要があるため、これで次にどこへ行くかわかりません。次のコマンドセットは何ですか?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.