一尘不染

查找文件并将其压缩(带空格)

linux

好吧,这里的问题很简单。我正在研究一个简单的备份代码。除非文件中有空格,否则它工作正常。这就是我查找文件并将其添加到tar存档中的方式:

find . -type f | xargs tar -czvf backup.tar.gz

问题是文件名中有空格,因为tar认为它是文件夹。基本上,有没有一种方法可以在find的结果周围添加引号?还是其他解决方法?


阅读 429

收藏
2020-06-02

共1个答案

一尘不染

用这个:

find . -type f -print0 | tar -czvf backup.tar.gz --null -T -

它会:

  • 处理带有空格,换行符,前导破折号和其他趣味的文件
  • 处理无限数量的文件
  • 当您有大量文件时tar -cxargs不会像使用with 那样反复覆盖您的backup.tar.gz
2020-06-02