Ls
如何在 ls 中使用萬用字元來查找數字序列中缺少的文件?
我正在嘗試在終端中按順序列出失去的文件。雖然這裡存在許多答案,但它們不夠通用,我設法使其適應我的情況。因此,如果您可以做出對更多人有用的足夠通用的答案,請這樣做。
我正在
ls {369..422}.avi >/dev/null
列出失去的文件,但我不能使用 * 來匹配以 .avi 結尾的任何內容。我怎樣才能做到這一點?數字不在文件末尾,而是在中間。所以我應該需要類似的東西
*numbers*.avi
ls *{369..422}*.avi >/dev/null
這將首先生成像
*369*.avi *370*.avi *371*.avi *372*.avi *373*.avi *374*.avi
通過大括號擴展,然後
ls
將使用這些模式執行,這將為每個無法擴展為目前目錄中的名稱的模式提供錯誤消息。或者,如果您沒有
*
名稱中包含的文件:for name in *{369..422}*.avi; do case "$name" in '*'*) printf '"%s" not matched\n' "$name" ;; esac done
這依賴於這樣一個事實,即如果模式與目前目錄中的名稱不匹配,則該模式保持未擴展。這為您提供了一種可能對失去的文件有用的方法,而無需解析
ls
.