1. 概要

Linuxコマンドラインで作業する場合、ディレクトリの下にファイルを一覧表示することは、おそらく最も一般的な操作の1つです。

たとえば、1行に1つのファイルなど、特定の形式のファイルのリストを取得したい場合があります。

このクイックチュートリアルでは、それを実現する方法を説明します。

2. lsコマンドと-1オプションの使用

ディレクトリ内のファイルを一覧表示する場合、lsコマンドが最初に考えられるコマンドになる可能性があります。 ただし、オプションを指定せずにコマンドを実行すると、lsコマンドはファイル名を1行で出力します。 例はそれを明確に説明します:

$ ls
aDir  file1.txt  file2.txt  file3.txt

もちろん、一般的に使用されている -l オプションを使用すると、lsで各ファイル名を1行に出力できます。 それは本当だ。 ただし、権限やファイルの所有者などの他の情報は、ファイル名とともに出力に表示されます。

$ ls -l
total 0
drwxr-xr-x 2 kent kent 40 Sep 30 21:07 aDir
-rw-r--r-- 1 kent kent  0 Sep 30 21:07 file1.txt
-rw-r--r-- 1 kent kent  0 Sep 30 21:07 file2.txt
-rw-r--r-- 1 kent kent  0 Sep 30 21:07 file3.txt

ファイル名と1行に1つのファイルのみを表示したい場合は、-1オプションを指定してlsコマンドを実行できます

$ ls -1
aDir
file1.txt
file2.txt
file3.txt

隠しファイル(ドットファイルとも呼ばれます)を表示する場合は、上記のコマンドに-aオプションを追加できます。

$ ls -1a
.
..
aDir
file1.txt
file2.txt
file3.txt
.hidden

3. ターミナル以外のls出力ターゲットの選択

オプションを指定しないlsコマンドは、ファイル名を1行で出力することを学びました。

$ ls -a
.  ..  aDir  file1.txt  file2.txt  foo  .hidden

また、出力を cat コマンドにパイプすると、出力がそのまま出力されます。

$ echo "This is a beautiful string." | cat
This is a beautiful string.

それでは、lsコマンドの結果をcatコマンドにパイプして、何が表示されるかを見てみましょう。

$ ls -a | cat
.
..
aDir
file1.txt
file2.txt
file3.txt
.hidden

上記の出力でわかるように、各ファイル名は魔法のように一列に並んでいます。

これは、 ls コマンドが、端末、リダイレクト、パイプなどの出力ターゲットに応じて出力を調整するためです。

出力ターゲットが端末でない場合、-1オプションがlsコマンドのデフォルトオプションになります。 したがって、lsは1行に1つのファイル名をターゲットに出力します。

出力ターゲットがパイプの場合、lsコマンドは1行にファイルを出力することに対処しました。

次に、lsがリダイレクトに出力する場合の別の例を見てみましょう。

$ ls -a > /tmp/ls.output

$ cat /tmp/ls.output
.
..
aDir
file1.txt
file2.txt
file3.txt
.hidden

例に示すように、ターゲットがファイルリダイレクトの場合、lsは1行に1ファイルを出力します。

4. 結論

このクイックチュートリアルでは、lsコマンドを使用して1行に1つのファイルを一覧表示する方法について説明しました。 -1オプションが重要です。

さらに、 ls コマンドは、さまざまな出力ターゲットに応じて出力を調整することを学びました。