将 /bin 目录中以 c 开头的前 7 个文件保存在文件中

将 /bin 目录中以 c 开头的前 7 个文件保存在文件中

我在linux的shell中写了一个命令来统计目录/bin中以'c'开头的文件(总共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 个最新的,添加omglob 限定符
  • 7 个最小的:oL
  • 7最大:OL

请注意,在 中find /bin/[c]*,shell 扩展了该 glob 并将结果文件(按字母顺序排序)作为单独的参数传递给find

请注意,如果这些文件中的任何一个是目录,find则将开始深入其中并列出其内容(以未指定的顺序)

你想要:

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

哪里-prune是防止find下降到任何目录。但请注意,head只有当文件名不包含换行符时,使用这种方法才有效(很可能是这种情况,/bin但在一般情况下不能保证)。

相关内容