我有一個這樣的免費檔案:
root_dir
|
-- dir1
|
-- file.ext
-- misc.txt
subdir
|
-- file.ext
-- rest.ext
|
-- dir2
|
-- file.ext
-- misc.txt
subdir
|
-- file.ext
-- rest.ext
我想壓縮它的以下子集:
root_dir
|
-- dir1
|
-- misc.txt
subdir
|
-- file.ext
-- rest.ext
|
-- dir2
|
-- misc.txt
subdir
|
-- file.ext
-- rest.ext
我的計劃是首先獲取檔案串列,然后將它們通過管道傳輸到 gzip 或 tar。中的檔案dir1和dir2具有相同的名稱(但內容不同)。然而,有問題的部分是file.extindir*和subdir具有相同的名稱,這使得根據名稱過濾檔案有點棘手。
在此之后,我在root_dir
find -type -f -not -name *misc.txt*
但是,不出所料,它file.ext也會在深度一處找到。有沒有辦法file.ext從find輸出中排除這些 depth-1 ?
筆記
- 擴展是虛擬的,代表一堆不同型別的檔案
- 我有數百
dir1個dir2 - each
dir*非常大,首先壓縮所有,然后洗掉第一級file.exts效率不高
uj5u.com熱心網友回復:
find . -type f -not -regex '\./[^/] /file\.ext'
它將丟棄任何與正則運算式匹配的內容。這里是包含檔案的直接子目錄file.ext。
正則運算式運行到整個路徑。
\.表示以 a 開頭.[^/]表示一堆不包含a的字符/file\.ext方法file.ext
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/478550.html
