我看了很多文章,我似乎無法弄清楚,我想我是一個noob。修剪目錄和當前目錄的文件以供tar使用
反正我有一個目錄我想tar,但是我想排除shallow目錄的文件,以及排除文件夾 「插件」,「備份」和「日誌」位於淺層目錄。
- >
\#!/bin/bash
mkdir -p /path/to/backup/directory/`date +%d%m%y`
cd /path/to/backup/directory/`date +%d%m%y`
cd .. | find . -not \\(-path plugins -prune -o -path backups -prune -o -path logs -prune \\) -mindepth 1 -print0 | xargs -0 tar cpj --directory=$(cd -) -f `date +%H`.tar.gz
這一發現部分是什麼是錯的,但不排除任何事情。這是我的第30次(不是字面上的,但實際上可能高於實際的xD)試圖修剪,什麼不修剪,每次嘗試看起來都比上一次更荒謬。
如果有人可以只顯示我要查找部分的解決方案,那簡直太好了 - 謝謝
(的「`」字符是日期周圍,它只是打破了代碼視圖,當我試圖把他們在那裏)
爲什麼不直接使用tar的--exclude = PATTERN選項? – mfnalex
'cd'對'find'沒有產生任何有意義的輸出,無論如何,這個改變對流水線的這個組件開始的進程是本地的。 – chepner
我同意'mfnalex','tar'有靈活的方法來包含/排除文件,你應該嘗試'man tar'。您可以使用文件列出包含/排除規範,並且可以使用流程替換('<(command_or_function)')按需構建文件以避免使用常規文件。 – Fred