Raspbian

為什麼 zip 中的 -x exclude 選項似乎實際上不排除路徑?

  • February 13, 2016

在 Raspberry Pi 上使用 Raspbian,我想備份 /etc 文件,但不是全部。我想排除 /etc/alternatives,所以我使用了這個命令:

sudo zip -r /home/pi/backup/$timestamp/etcfilesall.zip /etc/* –x /etc/alternatives/*

為什麼這不起作用?它繼續包含 /etc/alternatives 的內容,就像 /etc 中的所有其他文件夾一樣。

我嘗試了這些變化,但它們也不起作用

sudo zip -r –x /etc/alternatives/* @ /home/pi/backup/$timestamp/etcfilesall.zip /etc/*
sudo zip -r /home/pi/backup/$timestamp/etcfilesall.zip /etc/* –x /etc/alternatives
sudo zip -r /home/pi/backup/$timestamp/etcfilesall.zip /etc/* –x '/etc/alternatives'
sudo zip -r /home/pi/backup/$timestamp/etcfilesall.zip /etc/* –x '/etc/alternatives/*'

在遞歸的 -r 選項下, zip -h2 幫助說“使用 -i 和 -x 來包含或排除路徑”,所以看起來我正在嘗試做的事情應該得到支持。

問題是“x”(用於選項“-x”)之前的“-”實際上並不是 OP 問題中的 ASCII 減號。相反,它是 Unicode u+2013(看起來相同,但行為不同)。

如果按預期輸入了命令,則它在 OP 的最後一個範例中按預期工作(在此處更正):

sudo zip -r /home/pi/backup/$timestamp/etcfilesall.zip /etc/* -x '/etc/alternatives/*'

這可能是由於某些網站的剪切/粘貼導致的問題。

進一步閱讀:

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