はじめに
この実験では、Linux で lsattr コマンドを使用してファイルとディレクトリの拡張属性を表示および管理する方法を学びます。lsattr コマンドを使用すると、ファイルの特殊なプロパティ、たとえば不変であるか追加専用であるかを調べることができます。また、指定されたディレクトリ内のすべてのファイルとディレクトリの属性を再帰的に一覧表示する方法も学びます。この実験では、Linux のファイルとディレクトリ操作の基本をカバーし、lsattr コマンドをより熟練して使用できるようにするための実際の例を提供します。
lsattr コマンドを理解する
このステップでは、Linux の lsattr コマンドについて学びます。このコマンドを使用すると、ファイルとディレクトリの属性を表示できます。
lsattr コマンドは、1つ以上のファイルの拡張属性を一覧表示するために使用されます。これらの拡張属性は、ファイルが不変であるか、追加専用であるか、または他の特殊なプロパティを持っているかなど、ファイルに関する追加情報を提供します。
lsattr コマンドを使用するには、ターミナルで次のコマンドを実行します。
lsattr [filename]
[filename] を、調べたいファイルまたはディレクトリの名前に置き換えます。
出力例:
--------------e----------- file.txt
この出力は、file.txt ファイルのファイル属性を示しています。属性は一連の文字で表され、各文字は特定の属性を表します。この例では、e 属性は、一部のファイルシステムでパフォーマンスを向上させるために使用される "extent" 属性があることを示しています。
また、次のコマンドを実行することで、ディレクトリ内のすべてのファイルの属性を一覧表示することもできます。
lsattr -R [directory]
[directory] を、調べたいディレクトリの名前に置き換えます。-R オプションは、lsattr に指定されたディレクトリ内のすべてのファイルとディレクトリの属性を再帰的に一覧表示するように指示します。
出力例:
--------------e----------- file1.txt
--------------e----------- file2.txt
--------------e----------- subdir/file3.txt
この出力は、サブディレクトリ内のファイルを含む3つのファイルの属性を示しています。
lsattr を使ってファイル属性を表示する
このステップでは、Linux システム内のファイルとディレクトリの属性を表示するために lsattr コマンドをどのように使用するかを学びます。
まず、~/project ディレクトリにいくつかのファイルとディレクトリを作成しましょう。
cd ~/project
touch file1.txt file2.txt
mkdir subdir
touch subdir/file3.txt
次に、lsattr コマンドを使ってこれらのファイルとディレクトリの属性を表示しましょう。
lsattr file1.txt file2.txt subdir subdir/file3.txt
出力例:
--------------e----------- file1.txt
--------------e----------- file2.txt
--------------e----------- subdir
--------------e----------- subdir/file3.txt
この出力は、ファイルとディレクトリの属性を示しています。この場合、e 属性が設定されており、これはファイルまたはディレクトリが "extent" 属性を持っていることを示しています。
また、ディレクトリ内のすべてのファイルとディレクトリの属性を表示するには、-R(再帰的)オプションを使用することもできます。
lsattr -R ~/project
出力例:
--------------e----------- file1.txt
--------------e----------- file2.txt
--------------e----------- subdir
--------------e----------- subdir/file3.txt
このコマンドは、~/project ディレクトリ内のすべてのファイルとディレクトリの属性を再帰的に一覧表示します。
lsattr でファイル属性を管理する
このステップでは、lsattr コマンドを使ってファイルとディレクトリの属性を管理する方法を学びます。
まず、新しいファイルを作成してその上にいくつかの属性を設定しましょう。
touch file4.txt
sudo lsattr file4.txt
出力例:
--------------e----------- file4.txt
ご覧の通り、デフォルトでファイルには e 属性が設定されています。
次に、このファイルに i(不変)属性を追加しましょう。
sudo lsattr +i file4.txt
lsattr file4.txt
出力例:
----i---------e----------- file4.txt
i 属性は、ファイルが不変であることを示しており、つまりそのファイルを変更、削除、または名前変更することができないことを意味します。
また、- 接頭辞を使ってファイルから属性を削除することもできます。たとえば、i 属性を削除するには:
sudo lsattr -i file4.txt
lsattr file4.txt
出力例:
--------------e----------- file4.txt
i 属性が削除され、ファイルは現在編集可能になりました。
また、一度に複数のファイルまたはディレクトリに属性を適用することもできます。
touch file5.txt file6.txt
sudo lsattr +a file5.txt file6.txt
lsattr file5.txt file6.txt
出力例:
-a--------------e----------- file5.txt
-a--------------e----------- file6.txt
この例では、a(追加専用)属性が file5.txt と file6.txt に追加されています。
まとめ
この実験では、Linux の lsattr コマンドについて学びました。このコマンドを使用すると、ファイルとディレクトリの拡張属性を表示できます。また、lsattr コマンドを使って単一のファイルの属性を一覧表示したり、ディレクトリ内のすべてのファイルの属性を再帰的に一覧表示する方法を学びました。さらに、lsattr コマンドを使ってファイル属性を管理する方法、たとえばファイルに不変または追加専用属性を設定する方法についても学びました。



