cで始まる最初の7つのファイルを/ binディレクトリにファイルとして保存します。

cで始まる最初の7つのファイルを/ binディレクトリにファイルとして保存します。

/ binディレクトリで「c」で始まるファイル数を計算するために、Linuxシェルにコマンドを作成しました(合計8つ)。

find /bin/[c]* -type f | wc -l 

今やりたいことは、最初の7つのファイルの名前をテキストファイルに保存することですが、パイプラインに参加するのに適したコマンドを見つけることができません。

答え1

find /bin/[c]* -type f | head -n 7 > textfile 

答え2

アルファベット順に最初の7つを意味する場合は、次のようになりますzsh

printf '%s\n' /bin/c*(.[1,7]) > list.txt

意味するなら

  • 7番目、Omglob修飾子を追加( c*(.Om[1,7]))
  • 最新の7つ、omグローバル修飾子を追加
  • 最小の7つ:oL
  • 最大7個:OL

find /bin/[c]*シェルはglobを展開し、結果ファイル(アルファベット順にソート)を別の引数として渡しますfind

これらのファイルのいずれかがディレクトリの場合は、そのfindファイルを掘り下げて内容を一覧表示し始めます(指定されていない順序で)。

あなたが望むもの:

find /bin/c* -prune -type f | head -n 7 > file.txt

どこのディレクトリにも入る-pruneことはできません。findただしhead、このアプローチを使用することは、ファイル名に改行文字が含まれていない場合にのみ機能します(この場合は一般的ですが、/bin一般的な場合は保証されません)。

関連情報