[英]Getting the names of the first n files without listing all of them in linux
我知道只需鍵入以下內容就可以列出目錄中的前 n 個文件: ls | head -n
ls | head -n
其中 n 是要列出的文件數。 然而,問題是我試圖運行它的目錄充滿了數千個文件,導致此操作非常緩慢(需要幾分鍾),而我想要的只是第一個文件的名稱。
有沒有辦法實現所需的行為? 如何?
如果您不介意文件的順序..
您需要調用底層 libc opendir/readdir 函數,如此 perl 示例所示
#!/usr/bin/perl
opendir(my $dh, ".") || die "can't opendir . : $!";
for (1..10) {
$filename=readdir($dh);
print "$filename\n";
}
或作為單行程序,您可以從 shell 腳本調用
perl -le 'opendir($d, "."); print scalar readdir($d) for (1..10);'
ls -l |head
按字母順序給出文件,但這不能做到。 必須讀取所有文件才能按字母順序排列
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.