$ 7z l〜/ダウンロード/Tab
結果のリストを名前ではなく日付でソートする方法は?
私は現在、特別なスクリプトを使用して、特定のディレクトリにある最新のN個のファイルを一覧表示しています(そして、ファイル名をコマンドラインに手動でコピーしています)。
$ 7z l〜/ダウンロード/Tab
結果のリストを名前ではなく日付でソートする方法は?
私は現在、特別なスクリプトを使用して、特定のディレクトリにある最新のN個のファイルを一覧表示しています(そして、ファイル名をコマンドラインに手動でコピーしています)。
回答:
最近ダウンロードしたファイルをダウンロードディレクトリで見つける必要があるが、正確なファイル名がわからない場合があります。これが私のやり方です。
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)
これはタブ補完方式に準拠していませんが、ニーズに適していると思います。
rl
をls -lhtc "$@" | head -n $N
行うためのスクリプトを既に持っています。
次の手順を実行します
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
(最近のリスト)という名前の同様のスクリプトは既にあります。しかし、私はそれを明示的に呼び出してから、コピーして貼り付ける必要があります。タブ補完との統合を強化したい。
bashでは、たとえば、
7z l ~/Downloads/
Alt+n
変数を書き換える関数にbind
マッピングされAlt+nている場所READLINE_LINE
。
タブ補完を概算するために、argument-parsing-perl-kludgeをfzf
使用してこれを行い、メニューを表示します。
https://github.com/WillForan/fuzzy_arg/blob/master/fuzzy_new_complete.bash