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

Linux のファイル アクセス コマンド – find、sort、head、tail

次のファイル アクセス コマンドは UNIX コマンドであり、特定のシェル コマンドではありません。

コマンド リマーク
見つける ファイルの場所を見つける
ソート ファイルを読み取り、出力をソートします
聞くかしっぽ ファイルの先頭または末尾だけを見る

find コマンド

find コマンドを使用すると、ファイルとディレクトリを検索し、それらのファイルに対してコマンドを実行できます。 find コマンドの構文には、3 つの一般的な引数セクションがあります。パス セクションは、検索するパス名 (ディレクトリ) のリストです。 search_criteria セクションは、ブール (true または false) 式と見なされるオプションのリストです。各オプション (条件) が順番にテストされ、結果が true の場合、指定されたアクションが実行されます。

可能な検索基準のいくつかは次のとおりです:

  • -名前 – ファイル名が一致する場合
  • -ユーザー – ファイルがユーザー (ログイン名) に属している場合
  • -atime – ファイルが指定された日数前にアクセスされた場合
  • -mtime – ファイルが指定された日数前に最後に変更された場合
  • -サイズ – ファイルが特定のブロック サイズである場合

可能なアクションのいくつかは次のとおりです:

  • -print – ファイルのパス名を表示します
  • -exec – コマンドを実行します
  • わかりました – stdin から y を受け取った後にのみコマンドを実行します

find コマンドの使用例

ファイルを見つけるために、ファイルの完全な名前を知る必要はありません。たとえば、ログ ファイルは急速に大きくなる傾向があります。システム管理者は、ログ ファイルのサイズを監視する必要がある場合があります。管理ログ ファイル (/var/log 内のファイル) を検索するには ディレクトリ)、次のコマンドを使用します:

# find /var/log -name "*.log" -print
/var/log/audit/audit.log
/var/log/tuned/tuned.log
/var/log/cloud-init.log
/var/log/pm-powersave.log
/var/log/awslogs-agent-setup.log
/var/log/awslogs.log
/var/log/boot.log
/var/log/wpa_supplicant.log
/var/log/amazon/ssm/amazon-ssm-agent.log
/var/log/amazon/ssm/errors.log
/var/log/amazon/ssm/hibernate.log
/var/log/dpkg.log
/var/log/yum.log
/var/log/auth.log

ファイル システムのクリーンアップの一環として、コア ファイルを検索して削除することができます。次の 2 つのコマンドは、core という名前のファイルを検索します。最初のコマンドは、オペレーター入力なしで rm コマンドを実行します。 2 番目のコマンドは、rm コマンドを出力し、オペレーターの入力を必要とします。

$ find / -name core -exec rm -f {} \;
$ find / -name core -ok rm -f {} \;

1000 ブロックを超えるファイルを検索するには、次のコマンドを使用します:

$ find / -size +1000 -print

sort コマンド

パスワード ファイルなどのファイルは、多くの場合、ファイルの末尾に新しいユーザーを追加して作成されます。ファイルは特定の順序ではありません。ただし、ファイル内の何かまたは誰かを探している場合は、ファイルが特定の順序で並べ替えられていると便利です。 sort コマンドは、ファイルをソートする方法を提供します。

より一般的に使用される並べ替えオプションは次のとおりです。

  • -r – 逆順でソート (a から z ではなく、z から a)
  • -n – 情報交換用の米国標準コード (ASCII) 文字列ではなく、数値でフィールドを並べ替えます
  • -t [ch] – フィールド区切り文字を設定します
  • + 数 – ソートを開始するフィールド番号を設定します (フィールドには 0 [ゼロ] から番号が付けられます)
  • – 番号 – 前に並べ替えを停止するフィールド番号を設定します (これは、並べ替えと見なされない最初のフィールドです)
  • -b – 先頭の空白を無視します (通常、キーによる並べ替え中に指定されたフィールドの一部と見なされます)
  • -r – 逆順でソート (a から z ではなく、z から a)
  • -o – file ソートの出力を保持するために使用するファイルを設定します (元の入力を含むファイルと同じファイルである可能性があります)
# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
...

ファイルをログイン名でソートするには、次のコマンドを使用します:

# sort /etc/passwd
adm:x:3:4:adm:/var/adm:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
cloud_user:x:1002:1003::/home/cloud_user:/bin/bash
colord:x:997:995:User for colord:/var/lib/colord:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
geoclue:x:994:990:User for geoclue:/var/lib/geoclue:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
...

フィールドがコロンで区切られている 5 番目のフィールド (コメント) でファイルを並べ替えるには、次のコマンドを使用します。

# sort -t: -k5 /etc/passwd
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
...

ソートの出力をファイルに入れることができます。並べ替えを元のファイルに出力することもできます。例:

# cat names
Big Ape 415
Roger Rabbit 408
Jessica Rabbit 510
Easter Rabbit 408
Doctor Doom 415
Easter Rabbit 408
Peter Wolf 510
Roger Rabbit 408
Peter Rabbit 510
# sort names -o names

ファイルを再度確認してください:

# cat names
Big Ape 415
Doctor Doom 415
Easter Rabbit 408
Easter Rabbit 408
Jessica Rabbit 510
Peter Rabbit 510
Peter Wolf 510
Roger Rabbit 408
Roger Rabbit 408

複数のファイルが既にソートされていて、1 つのファイルにマージしたい場合は、次のコマンドを使用します:

# sort file1 file2 file3 -o file4

ファイルをマージすると、エントリが重複する場合があります。ファイルの一意の行のみを出力するには、次のコマンドを使用します:

# sort -u names
Big Ape 415
Doctor Doom 415
Easter Rabbit 408
Jessica Rabbit 510
Peter Rabbit 510
Peter Wolf 510
Roger Rabbit 408

ファイルの一部を読み取る

ファイル全体を確認したくない場合がよくあります。ファイルの先頭を参照して正しいファイルかどうかを判断したり、ファイルの末尾を調べてファイルに最後に入力された内容を確認したりすることができます。

ヘッド コマンド

ファイルの先頭を確認するには、head コマンドを使用します:

# head -5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

テール コマンド

ログ ファイルを確認するときは、おそらくそのファイルの最後のいくつかのエントリだけに関心があります。 tail コマンドを使用して、ファイルの末尾を調べることができます。

# tail -5 /etc/passwd
systemd-network:x:995:991:systemd Network Management:/:/sbin/nologin
geoclue:x:994:990:User for geoclue:/var/lib/geoclue:/sbin/nologin
cloud_user:x:1002:1003::/home/cloud_user:/bin/bash
ssm-user:x:1003:1004::/home/ssm-user:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin


Linux
  1. Linuxでファイルを見つける方法

  2. Firefoxのログファイルを見つけますか?

  3. Linuxでログファイルを空にする方法

  1. Linuxテールコマンドの例

  2. Linuxで検索および検索コマンドを使用してファイルを検索する

  3. Linuxの検索コマンド

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

  2. 10Linuxでのファイル検索を改善するためのコマンドの検索[基本]

  3. Linuxファイルアクセスモニタリング?