タブ補完リストで日付順にファイルを注文する方法


9
$ 7z l〜/ダウンロード/Tab

結果のリストを名前ではなく日付でソートする方法は?

私は現在、特別なスクリプトを使用して、特定のディレクトリにある最新のN個のファイルを一覧表示しています(そして、ファイル名をコマンドラインに手動でコピーしています)。


4
zshでは簡単です。bashでそれが可能かどうかはわかりません。
Gilles「SO-邪悪なことをやめよ」

日付順にリストされたファイルのみを表示しますか、それともなんとかしてそれらを日付順にアーカイブに追加しますか?
terdon

「ダウンロード」ディレクトリにはさまざまなファイルがたくさんありますが、最近ダウンロードしたファイルにアクセスしたいと思います(解凍したり、どこかに移動したりするなど)。
Vi。

回答:


2

bashできないと思いますので、お試しくださいzsh。私はzshユーザーではありませんが、この構成は機能するはずです。

autoload -U compinit
compinit
zstyle ':completion:*' file-sort modification reverse

reverseここでは、上部が画面に表示されていない可能性があるため、リストの最後に最新のファイルを表示しています。)


0

最近ダウンロードしたファイルをダウンロードディレクトリで見つける必要があるが、正確なファイル名がわからない場合があります。これが私のやり方です。

ls -rt ~/Downloads

ls -tファイルは名前ではなく時間順にリストされ、最新のものが最初に表示されます。ダウンロードディレクトリに非常に多くのファイルが含まれているため、リストの一番上までスクロールして最新のものを表示したくありません。 ls -rtリストの順序を逆にして、リストの一番下に最新のファイルを表示します。

そこから、必要なことを簡単に行うことができます。例えば:

unzip $(ls -rt ~/Downloads | tail -n1)

または

mv $(ls -rt ~/Downloads | tail -n1) *some_other_location*

あなたの元の質問は次のように行うことができます:

7z l $(ls -rt ~/Downloads | tail -n1)

これはタブ補完方式に準拠していませんが、ニーズに適していると思います。


タイピングを保存しません。実際、私はこれrlls -lhtc "$@" | head -n $N行うためのスクリプトを既に持っています。
Vi。

問題は、このスクリプトや他のスクリプトを<kbd> Tab </ kbd>にインターゲートしてシームレスに考える方法です。
Vi。

あなたのスニペットはまた、ダウンロードされたファイルの典型的なように、いくつかのトリッキーなファイル名で壊れる傾向があります。
Vi。

0

次の手順を実行します

  1. First I will find the files and their timestamps
  2. Sort them reversely
  3. Take top N
  4. Get the filenames
  5. Zip it or do whatever u like

そして、スクリプトは次のようになります(複雑になる場合があります)

find ~/Downloads/ -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r | head -N | cut -d' ' -f3 | xargs 7z l

rl(最近のリスト)という名前の同様のスクリプトは既にあります。しかし、私はそれを明示的に呼び出してから、コピーして貼り付ける必要があります。タブ補完との統合を強化したい。
Vi。

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