Wildcards

是否可以用less打開子目錄中的文件?

  • April 14, 2015

我有時會使用 less 來快速翻閱一小部分文件,例如

less brscan/*/*

然後我:n用來循環瀏覽文件

如果我有一個文件夾,例如

brscan/
├── DEBIAN
│   ├── conffiles
│   ├── control
│   ├── postinst
│   ├── postrm
│   └── prerm
├── etc
│   └── opt
├── opt
│   └── brother
└── usr
   ├── bin
   └── lib64

在此範例中,less將拾取文件夾中的文件DEBIAN

DEBIAN
      ├── conffiles
      ├── control
      ├── postinst
      ├── postrm
      └── prerm

但它不會下降到其他子目錄,它只是錯誤:

brscan/etc 是一個目錄

brscan/opt 是一個目錄

brscan/usr 是一個目錄

是否可以減少分頁這些子目錄中的文件?

我在想類似的東西

find brscan/ | xargs less

但它不起作用 - 仍在拾取目錄

指定-not -type d從查找結果中省略目錄

find -not -type d | xargs less

或更好:

find -not -type d -print0 | xargs -0 less

它可以更好地處理帶有空格的文件名。

啟用 globstar選項後bash,您可以:

shopt -s globstar
less brscan/**/*

但它也包括目錄。使用zsh,您可以僅過濾對正常文件的擴展:

less brscan/**/*(.)

如果返回的文件過多,上述所有操作都將失敗。安全的方法是使用find

find brscan -type f -exec less {} +

引用自:https://unix.stackexchange.com/questions/196094