如何只打印與特定模式匹配的嵌套目錄中的最後(n)個文件?拖尾多個目錄
做
ls -l dir*/history/ | tail
僅給出最後一個目錄的內容。
我懷疑它與xargs
有關,但不能真正弄清楚。
如何只打印與特定模式匹配的嵌套目錄中的最後(n)個文件?拖尾多個目錄
做
ls -l dir*/history/ | tail
僅給出最後一個目錄的內容。
我懷疑它與xargs
有關,但不能真正弄清楚。
直接回答你的問題,使用循環:
for d in dir*/history/; do
ls -l "$d" | tail
done
但是,對於更高級目錄「過濾」(加工)比這個find
可能會派上用場。
雖然我希望有一個線索,但它可以工作... – Manfredo
將所有內容放在一行上,例如對於dir *而言;做ls -l「$ d」|尾巴;完成' –
試一下:
find . -type d -name "dir*" | while read dir; do find "$dir" | tail -n 5; done
不是很簡潔,但如果你需要匹配嵌套目錄的所有級別,從每個子目錄挑N個文件...
另外補充2>的/ dev/null的在每個管道之前禁止'權限被拒絕'的信息。或者使用sudo。
與進程替換等效的,如果你需要在while循環中改變全局變量:
while read dir; do find "$dir" | tail -n 5; done < <(find . -type d -name "dir*")
添加'-name「模式」'將有助於答案匹配更新的問題好一點。您還需要添加'sort'作爲'find'不會保留規範的排序順序。 –
我編輯帖子,添加我的目錄模式是嵌套的。你的例子並沒有真正的工作(不知道這是爲什麼)。 – Manfredo
它會,我懷疑編輯即將到來。 –
你想打印的每個子目錄10個文件,或整體? – randomir
這將有助於瞭解需要查找的*「特定模式」*的類型,以瞭解是否需要* globbing *或* regex matching *。 –
我想我最終理解你的需要。試試這個例子。 – hedgar2017