GNU/Linux >> Linux の 問題 >  >> Linux

Linuxで変更日時に基づいてファイルを検索およびソートする方法

通常、私たちは多くの情報をファイルの形でシステムに保存する習慣があります。いくつかの隠しファイル、理解しやすいように作成された別のフォルダーに保存されているファイル、そのままのファイルもあります。しかし、このすべてのものが私たちのディレクトリを埋めます。通常はデスクトップで、混乱しているように見えます。ただし、この膨大なコレクションで特定の日時に変更された特定のファイルを検索する必要がある場合に問題が発生します。

GUIに慣れている人は、ファイルマネージャーを使用してファイルを見つけることができます。ファイルマネージャーは、ファイルを長いリスト形式で一覧表示するため、必要なものを簡単に理解できますが、黒い画面を使用するユーザーや、GUIがないサーバーで作業しているユーザーでも可能です。検索を容易にする簡単なコマンドまたは一連のコマンドが必要です。

Linuxにはコマンドのコレクションがあり、別々にまたは一緒に使用すると、ファイルの検索や、名前、変更日、作成時刻、またはその他のファイルのコレクションの並べ替えに役立ちます。結果を得るために適用することを考えることができるフィルター。

ここでは、ファイルまたはファイルのリストを日付で並べ替えるのに役立つ一連のコマンドを調べて、Linuxの真の強みを明らかにします。 および時間

LinuxでファイルをソートするためのLinuxユーティリティ

日付に基づいてディレクトリを並べ替えるのに十分ないくつかの基本的なLinuxコマンドラインユーティリティ および時間 は:

lsコマンド

ls –ディレクトリの内容を一覧表示します。このユーティリティは、ファイルとディレクトリを一覧表示でき、変更またはアクセスの日時、権限、サイズ、所有者、グループなど、それらに関するすべてのステータス情報を一覧表示することもできます。

Linuxのlsコマンドに関する多くの記事はすでに取り上げました。 および並べ替えコマンド 、以下でそれらを見つけることができます:

  1. 15の基本的な例でlsコマンドを学ぶ
  2. 例を使用して7つのAdvancelsコマンドを学ぶ
  3. Linuxでのlsコマンドに関する15の役立つインタビューの質問

並べ替えコマンド

並べ替え –このコマンドを使用すると、任意のフィールドまたはフィールドの特定の列だけで検索の出力を並べ替えることができます。

Linuxの並べ替えコマンドに関する2つの記事についてはすでに説明しました。 、以下でそれらを見つけることができます:

  1. 14 Linuxの「ソート」コマンドの例–パート1
  2. 7便利なLinuxの「ソート」コマンドの例–パート2

これらのコマンドは、それ自体が非常に強力なコマンドであり、黒い画面で作業していて、必要なファイルを取得するためだけに大量のファイルを処理する必要がある場合に習得できます。

日付と時刻を使用してファイルを並べ替えるいくつかの方法

以下は、日付と時刻に基づいて並べ替えるコマンドのリストです。

1。変更時間に基づいてファイルを一覧表示する

次のコマンドは、ファイルを長いリスト形式で一覧表示し、変更時刻に基づいて最新のものから順にファイルを並べ替えます。逆の順序で並べ替えるには、'-r'を使用します このコマンドで切り替えます。

# ls -lt

total 673768
-rwxr----- 1 tecmint tecmint  3312130 Jan 19 15:24 When You Are Gone.MP3
-rwxr----- 1 tecmint tecmint  4177212 Jan 19 15:24 When I Dream At Night - Marc Anthony-1.mp3
-rwxr----- 1 tecmint tecmint  4177212 Jan 19 15:24 When I Dream At Night - Marc Anthony.mp3
-rwxr----- 1 tecmint tecmint  6629090 Jan 19 15:24 Westlife_Tonight.MP3
-rwxr----- 1 tecmint tecmint  3448832 Jan 19 15:24 We Are The World by USA For Africa (Michael Jackson).mp3
-rwxr----- 1 tecmint tecmint  8580934 Jan 19 15:24 This Love.mp3
-rwxr----- 1 tecmint tecmint  2194832 Jan 19 15:24 The Cross Of Changes.mp3
-rwxr----- 1 tecmint tecmint  5087527 Jan 19 15:24 T.N.T. For The Brain 5.18.mp3
-rwxr----- 1 tecmint tecmint  3437100 Jan 19 15:24 Summer Of '69.MP3
-rwxr----- 1 tecmint tecmint  4360278 Jan 19 15:24 Smell Of Desire.4.32.mp3
-rwxr----- 1 tecmint tecmint  4582632 Jan 19 15:24 Silence Must Be Heard 4.46.mp3
-rwxr----- 1 tecmint tecmint  4147119 Jan 19 15:24 Shadows In Silence 4.19.mp3
-rwxr----- 1 tecmint tecmint  4189654 Jan 19 15:24 Sarah Brightman  & Enigma - Eden (remix).mp3
-rwxr----- 1 tecmint tecmint  4124421 Jan 19 15:24 Sade - Smooth Operator.mp3
-rwxr----- 1 tecmint tecmint  4771840 Jan 19 15:24 Sade - And I Miss You.mp3
-rwxr----- 1 tecmint tecmint  3749477 Jan 19 15:24 Run To You.MP3
-rwxr----- 1 tecmint tecmint  7573679 Jan 19 15:24 Roger Sanchez_Another Chance_Full_Mix.mp3
-rwxr----- 1 tecmint tecmint  3018211 Jan 19 15:24 Principal Of Lust.3.08.mp3
-rwxr----- 1 tecmint tecmint  5688390 Jan 19 15:24 Please Forgive Me.MP3
-rwxr----- 1 tecmint tecmint  3381827 Jan 19 15:24 Obvious.mp3
-rwxr----- 1 tecmint tecmint  5499073 Jan 19 15:24 Namstey-London-Viraaniya.mp3
-rwxr----- 1 tecmint tecmint  3129210 Jan 19 15:24 MOS-Enya - Only Time (Pop Radio mix).m

2。最終アクセス時間に基づいてファイルを一覧表示する

最終アクセス時間に基づいた、つまりファイルが最後にアクセスされた時間に基づいた、変更されていないディレクトリ内のファイルのリスト。

# ls -ltu

total 3084272
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:24 Music
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 Linux-ISO
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 Music-Player
drwx------  3 tecmint tecmint       4096 Jan 19 15:22 tor-browser_en-US
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 bin
drwxr-xr-x 11 tecmint tecmint       4096 Jan 19 15:22 Android Games
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 Songs
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 renamefiles
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 katoolin-master
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 Tricks
drwxr-xr-x  3 tecmint tecmint       4096 Jan 19 15:22 Linux-Tricks
drwxr-xr-x  6 tecmint tecmint       4096 Jan 19 15:22 tuptime
drwxr-xr-x  4 tecmint tecmint       4096 Jan 19 15:22 xdm
drwxr-xr-x  2 tecmint tecmint      20480 Jan 19 15:22 ffmpeg usage
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 xdm-helper

3。最終変更時刻に基づいてファイルを一覧表示する

ファイルのステータス情報の最終変更時刻、または'ctime'に基づくディレクトリ内のファイルのリスト 。このコマンドは、所有者、グループ、権限、サイズなどのステータス情報が最近変更されたファイルを最初に一覧表示します。

# ls -ltc

total 3084272
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:24 Music
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 13:05 img
-rw-------  1 tecmint tecmint     262191 Jan 19 12:15 tecmint.jpeg
drwxr-xr-x  5 tecmint tecmint       4096 Jan 19 10:57 Desktop
drwxr-xr-x  7 tecmint tecmint      12288 Jan 18 16:00 Downloads
drwxr-xr-x 13 tecmint tecmint       4096 Jan 18 15:36 VirtualBox VMs
-rwxr-xr-x  1 tecmint tecmint        691 Jan 13 14:57 special.sh
-rw-r--r--  1 tecmint tecmint     654325 Jan  4 16:55 powertop-2.7.tar.gz.save
-rw-r--r--  1 tecmint tecmint     654329 Jan  4 11:17 filename.tar.gz
drwxr-xr-x  3 tecmint tecmint       4096 Jan  4 11:04 powertop-2.7
-rw-r--r--  1 tecmint tecmint     447795 Dec 31 14:22 Happy-New-Year-2016.jpg
-rw-r--r--  1 tecmint tecmint         12 Dec 18 18:46 ravi
-rw-r--r--  1 tecmint tecmint       1823 Dec 16 12:45 setuid.txt
...

'-a'の場合 switchは上記のコマンドで使用され、現在のディレクトリ内の隠しファイルを一覧表示して並べ替えることができます。'-r' スイッチは出力を逆の順序で一覧表示します。

出力での並べ替えなど、より詳細な並べ替えについて 検索の コマンド、ただしls 使用することもできますが、'sort' 出力にはファイル名だけでなく、ユーザーが希望するフィールドが含まれている可能性があるため、より便利です。

以下のコマンドは、sortの使用法を示しています findを使用 日付に基づいてファイルのリストを並べ替えるコマンド および時間

findコマンドの詳細については、次のリンクを参照してください。Linuxでの「find」コマンドの35の実用例

4。月に基づいてファイルを並べ替える

ここでは、findを使用します ルート(‘/’)内のすべてのファイルを検索するコマンド ディレクトリを作成し、結果を次のように出力します: どのファイルにアクセスし、次にファイル名にアクセスしたか。その完全な結果のうち、ここに上位の 11をリストします。 エントリ。

# find / -type f -printf "\n%Ab %p" | head -n 11

Dec /usr/lib/nvidia/pre-install
Dec /usr/lib/libcpufreq.so.0.0.0
Apr /usr/lib/libchromeXvMCPro.so.1.0.0
Apr /usr/lib/libt1.so.5.1.2
Apr /usr/lib/libchromeXvMC.so.1.0.0
Apr /usr/lib/libcdr-0.0.so.0.0.15
Dec /usr/lib/msttcorefonts/update-ms-fonts
Nov /usr/lib/ldscripts/elf32_x86_64.xr
Nov /usr/lib/ldscripts/elf_i386.xbn
Nov /usr/lib/ldscripts/i386linux.xn

次のコマンドは、'-k1'で指定された最初のフィールドとしてキーを使用して出力を並べ替えます 次に、'M'で指定された月に並べ替えます その前に。

# find / -type f -printf "\n%Ab %p" | head -n 11 | sort -k1M

Apr /usr/lib/libcdr-0.0.so.0.0.15
Apr /usr/lib/libchromeXvMCPro.so.1.0.0
Apr /usr/lib/libchromeXvMC.so.1.0.0
Apr /usr/lib/libt1.so.5.1.2
Nov /usr/lib/ldscripts/elf32_x86_64.xr
Nov /usr/lib/ldscripts/elf_i386.xbn
Nov /usr/lib/ldscripts/i386linux.xn
Dec /usr/lib/libcpufreq.so.0.0.0
Dec /usr/lib/msttcorefonts/update-ms-fonts
Dec /usr/lib/nvidia/pre-install

5。日付に基づいてファイルを並べ替える

ここでも、findを使用します ルートディレクトリ内のすべてのファイルを検索するコマンドですが、結果は次のように出力されます:最終日 前回にファイルにアクセスしました ファイルにアクセスしてからファイル名にアクセスしました。そのうち上位11件を取り上げます。

# find / -type f -printf "\n%AD %AT %p" | head -n 11

12/08/15 11:30:38.0000000000 /usr/lib/nvidia/pre-install
12/07/15 10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0
04/11/15 06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0
04/11/15 06:08:34.9939910430 /usr/lib/libt1.so.5.1.2
04/11/15 06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0
04/11/15 06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15
12/18/15 11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn

以下のsortコマンドは、最初に年の最後の桁に基づいてソートし、次に月の最後の桁に基づいて逆の順序でソートし、最後に最初のフィールドに基づいてソートします。ここでは、「 1.8 ‘は最初のフィールドの8列目を意味し、‘ n’ その前は数値ソートを意味し、「r」 逆順の並べ替えを示します。

# find / -type f -printf "\n%AD %AT %p" | head -n 11 | sort -k1.8n -k1.1nr -k1

12/07/15 10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0
12/08/15 11:30:38.0000000000 /usr/lib/nvidia/pre-install
12/18/15 11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn
04/11/15 06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0
04/11/15 06:08:34.9939910430 /usr/lib/libt1.so.5.1.2
04/11/15 06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15
04/11/15 06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0

6。時間に基づくファイルの並べ替え

ここでも、findを使用します ルートディレクトリ内の上位11個のファイルを一覧表示し、結果を次の形式で出力するコマンド。最後にファイルにアクセスしたとき、次にファイル名。

# find / -type f -printf "\n%AT %p" | head -n 11

11:30:38.0000000000 /usr/lib/nvidia/pre-install
10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0
06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0
06:08:34.9939910430 /usr/lib/libt1.so.5.1.2
06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0
06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15
11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts
12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr
12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn
12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn

次のコマンドは、時間の最初の桁である出力の最初のフィールドの最初の列に基づいて出力を並べ替えます。

# find / -type f -printf "\n%AT %p" | head -n 11 | sort -k1.1n

06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0
06:08:34.9939910430 /usr/lib/libt1.so.5.1.2
06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15
06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0
10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0
11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts
11:30:38.0000000000 /usr/lib/nvidia/pre-install
12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr
12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn
12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn

7。日付に基づいてls-lの出力を並べ替える

このコマンドは、'ls -l'の出力を並べ替えます 月ごとに6番目のフィールドに基づいてコマンドを実行し、次に数値で日付である7番目のフィールドに基づいてコマンドを実行します。

# ls -l | sort -k6M -k7n

total 116
-rw-r--r-- 1 root root     0 Oct  1 19:51 backup.tgz
drwxr-xr-x 2 root root  4096 Oct  7 15:27 Desktop
-rw-r--r-- 1 root root 15853 Oct  7 15:19 powertop_report.csv
-rw-r--r-- 1 root root 79112 Oct  7 15:25 powertop.html
-rw-r--r-- 1 root root     0 Oct 16 15:26 file3
-rw-r--r-- 1 root root    13 Oct 16 15:17 B
-rw-r--r-- 1 root root    21 Oct 16 15:16 A
-rw-r--r-- 1 root root    64 Oct 16 15:38 C

結論

同様に、並べ替えの知識があることによって コマンドを使用すると、任意のフィールド、さらには任意の列に基づいて、ほぼすべてのリストを並べ替えることができます。これらは、日付または時刻に基づいてファイルを並べ替えるのに役立ついくつかのトリックでした。これらに基づいて独自のトリックを構築することができます。ただし、他に興味深いトリックがある場合は、コメントでいつでもそのことを言及できます。


Linux
  1. LinuxでSUIDおよびSGID権限を持つファイルを検索する方法

  2. Linuxでのアクセス、変更日時に基づいてファイルを検索して並べ替える

  3. Linux –ファイルの作成日を見つける方法は?

  1. Linux システムの再起動日時を表示する方法

  2. Linux で空のディレクトリとファイルを見つけて削除する方法

  3. Linuxで隠しファイルをchmodおよびchownする方法は?

  1. findおよびduコマンドを使用してLinuxで大きなファイルを検索する方法

  2. Linux で変更日に基づいてファイルをコピーする

  3. ファイルを再帰的にリストし、変更時間でソートする方法は?