私は使用しています|並べ替えられたファイルを読み込みます。私は、ディレクトリ/テストにfindを使って最新のファイル名を読む
files=($(find /test/ | sort))
を行うときには、私は別の順序でファイル名を取得します。
ls -lhtr
ファイル名の取得方法は、ls -lhtrと同じ方法で行いますか?私は最初に最新のファイル名を読んでみたいと思います。
私は使用しています|並べ替えられたファイルを読み込みます。私は、ディレクトリ/テストにfindを使って最新のファイル名を読む
files=($(find /test/ | sort))
を行うときには、私は別の順序でファイル名を取得します。
ls -lhtr
ファイル名の取得方法は、ls -lhtrと同じ方法で行いますか?私は最初に最新のファイル名を読んでみたいと思います。
複数のコメントを回答に転送する。
あなたは(ソート可能な形式の名前だけでなく、修正時間を印刷するようにしなければならないと思い例えば、YYYY-MM-DD HH:MM:日付+時間SS、あるいはUnixタイムスタンプとして - 1970-01-01 00:00:00 + 00:00以降の秒数)。彼らの普通の並べ替えは、ls -lhtr
があなたに与えるように、最新の最後のものを順番に返します。 GNU find
から-printf
を調べてください。修正時間を適切に印刷できます。
私は
find /test/ -printf "%TY-%Tm-%Td %TT %p\n" | sort -n
を使用していますが、私は最も古いファイルを最初に取得しています。最新のものを最初に取得するにはどうすればよいですか?
あなたが示唆していることはほとんど当てはまりますが、数値ソートを行いたくないと思います。 ISO 8601形式の日付は、通常の並べ替えを使用してソートされます。したがって:
find /sapfiler/WEBADM/test/ -printf "%TY-%Tm-%Td %TT %p\n" | sort
は、限り、あなたは名前に改行を持つファイルを持っていないとして、まず最も古いファイルをリスト、動作するはずです。
最新のものを最初に使用したい場合は、逆順で並べ替える必要があります。したがって、sort
の代わりにsort -r
を並べ替える必要があります。これが最後の最新のファイルの一覧が表示されますls -lhtr
により提供されるため、逆のことを
find /sapfiler/WEBADM/test/ -printf "%TY-%Tm-%Td %TT %p\n" | sort -r
注意。
ソート可能な形式(例:日付+時間はYYYY-mm-dd HH:MM:SS、1970年以降はUnixタイムスタンプ - 秒)で名前を変更するだけで印刷できます。 -01-01 00:00:00 +00:00)。 'ls -lhtr'があなたに与えるように、それらのプレーンなソートは最後のものを順番に返します。 'find'の' -printf'が修正時間を適切に印刷できるかどうか調べてください。 –
@JonathanLeffler、私は使用しています 'find/test/-printf%TY-%Tm-%Td%TT%p \ n" | sort -n' しかし、私は最も古いファイルを最初に取得しています。どうすれば最新のものを取得する必要がありますか? – jimmy
コードをバッククォートのコメントに入れてください。あなたが示唆していることは、ほとんど妥当と思われますが、数値ソートを行いたくないです。 ISO 8601形式の日付は、通常の並べ替えを使用してソートされます。したがって、 'find/sapfiler/WEBADM/test/-printf"%TY-%Tm-%Td%TT%p \ n "|あなたが名前に改行を含むファイルを持っていない限り、 'sort'は動作するはずです。 –