Shell

tar 不全部存在的文件列表

  • January 15, 2020

我正在從腳本執行命令,例如

tar -c -f ar.tar a b c d

其中 b、c 和 d 可能不存在,並且可能是目錄。我提出的解決方案是將ls -dto的輸出通過管道傳輸grep,然後將其拼接到tar命令中,或者為@(a|b|c|d).

有沒有更簡潔的方法來做到這一點?我在 Debian Wheezy 上,它似乎沒有--include參數。

你可以試試

tar cf ar.tar $(ls a b c d )

在哪裡

  • c為創建
  • f ar.tar指定 tar 文件
  • $(ls a b c d)將向標準輸入列出真正存在的文件(並為其他文件提供錯誤)

如果可以在 tar 存檔中包含文件的完整路徑,您可以執行以下操作:

tar -c -f ar.tar $(readlink -e a b c d)

readlink-e選項將規範化現有文件名並默默地忽略任何其他文件名。

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