Find
在以c開頭的目錄/bin中的前7個文件保存在一個文件中
我在linux的shell中寫了一個命令來計算目錄/bin中以’c’開頭的文件(總共8個)
find /bin/[c]* -type f | wc -l
我現在想做的是將前 7 個文件的名稱保存在一個文本文件中,但我找不到正確的命令來加入我的管道。
find /bin/[c]* -type f | head -n 7 > textfile
如果您指的是按字母順序排列的前 7 個,則
zsh
:printf '%s\n' /bin/c*(.[1,7]) > list.txt
如果你的意思是
- 7 個最舊的,添加
Om
glob 限定符 (c*(.Om[1,7])
)- 7 個最新的,添加
om
glob 限定符- 最小的 7 個:
oL
- 7大:
OL
請注意,在 中
find /bin/[c]*
,擴展該 glob 並將生成的文件(按字母順序排序)作為單獨的參數傳遞給find
.請注意,如果這些文件中的任何一個是目錄,
find
將開始進入它們並列出它們的內容(以未指定的順序)你會想要:
find /bin/c* -prune -type f | head -n 7 > file.txt
where
-prune
is 防止find
下降到任何目錄。但請注意,head
僅當文件名不包含換行符時才使用這種方式(很可能是這種情況,/bin
但在一般情況下不能保證)。