別の行のファイル名のリストを取得する方法


116

でのように、ディレクトリ内のすべてのファイルのリストを取得して、ls各ファイル名が別の行に表示されるようにしls -lます。私は見てls --help、解決策を見つけませんでした。やってみた

ls -l | cut --fields=9 -d" "

ただしls、列間に固定数のスペースを使用しません。これを行う方法についてのアイデア、できれば1行で

回答:


259

ls -1

それは数ではなく、小さいLです。


5
私はこれをドキュメントで見ます:クロス-x、コンマ-m、水平-x、長い-l、単一列-1、冗長-l、垂直-Cこれらがどのように考え出されたかはわかりません。
Alexander Taylor、

23

ls -1。ヘルプから:

-1 1行に1つのファイルをリストします

cygwinとFreeBSDで動作するので、GNU固有ではないでしょう。


Ubuntuでも動作します。よろしく
お願いし

12

パイプなしのソリューション:-)

 ls --format single-column

長いオプションは、BSD lsが短い引数のみをサポートするGNU coreutilsでのみサポートされていることに注意してください。-1


6

おそらく:

ls | awk '{print $NF}'

注:「apples and pears.jpg」などのスペースを含むファイル名は「pears.jpg」に変わります
oknate

4

ls | cat ...またはおそらく、 ls -1


4
猫の無用な使用は避けてください:)
jhwist

3
catこのインスタンスでは役に立たないわけではありません。lsOPが要求するように、1つの列の出力をフォーマットします。
Felix Eve、

3

sedコマンドを使用して単一の列を一覧表示する

ls -l | sed 's/\(^[^0-9].\*[0-9]\*:[0-9]\*\) \(.*\)/\2/'

ls -l答え全体と同じ出力を生成します。sedここに何が追加されているかわからない...
Felix Eve

3

これを試して:

$ ls | xargs -n num

ここnumにリストしたい列の数があります。


1

最初にこれを使用できます。1行に1つのファイルが表示されます。

ls -l | sed 's /(.*)(。*)$ / \ 2 /'

または、このように使用できます

見つける。-maxdepth 1 | sed 's /.///'

どちらも同じです。


エラーが表示されますsed: -e expression #1, char 16: invalid reference \2 on `s' command's RHS
Felix Eve、


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.