好吧,这里的问题很简单.我正在编写一个简单的备份代码.它工作正常,除非文件中有空格.这就是我找到文件并将它们添加到tar存档的方式:
find . -type f | xargs tar -czvf backup.tar.gz
Run Code Online (Sandbox Code Playgroud)
问题是当文件在名称中有空格时,因为tar认为它是一个文件夹.基本上有一种方法可以在find的结果周围添加引号吗?或者以不同的方式解决这个问题?
我用tar czvf file
command.then 创建了.tgz文件,最后得到了一个tgz文件.我想知道它和tar.gz之间的区别.
我发现了如何确定数据是否是没有文件的有效tar文件的问题?,但我想知道:是否有现成的命令行解决方案?
我正在研究一个备份脚本,并想要建立一个文件目录:
tar czf ~/backup.tgz /home/username/drupal/sites/default/files
Run Code Online (Sandbox Code Playgroud)
这样可以解决这个问题,但是当我解压缩生成的文件时,它包含完整的文件结构:文件位于home/username/drupal/sites/default/files
.
有没有办法排除父目录,以便生成的tar只知道最后一个目录(files
)?
我尝试tar.gz一个目录并使用
tar -czf workspace.tar.gz *
Run Code Online (Sandbox Code Playgroud)
生成的tar包含.svn
子目录中的目录,但不包含在当前目录中(因为*
在将其传递给tar之前,只扩展为'visible'文件
我试过了
tar -czf workspace.tar.gz .
相反,但后来我得到一个错误,因为'.' 在阅读时发生了变化:
tar: ./workspace.tar.gz: file changed as we read it
Run Code Online (Sandbox Code Playgroud)
是否有一个技巧,以*
匹配目录中的所有文件(包括点前缀)?
(在Linux SLES-11上使用bash(2.6.27.19)
在我的Linux机器上,我希望创建某个文件夹的.tar.bz2文件.一旦我将自己放在该文件夹中(在终端中),我在终端命令行中键入什么来将压缩文件夹放在我的机器的主目录中?
假设我在文件夹/ home/user /文件夹中.在文件夹"文件夹"中有几个文件(txt,.c等).如何压缩.tar.bz2类型的文件夹并将其放在我的/ home目录中?
在/ home/user /文件夹中,我尝试了sudo tar -cvjSf folder.tar.bz2
但是收到错误:
tar:懦弱地拒绝创建一个空档案
我有一个tar文件,里面有多个文件.我需要编写一个python脚本,它将读取文件的内容并给出总字符数,包括字母总数,空格,换行符,所有内容,而不用解压缩tar文件.
我tar
在目录中有一堆文件,我想立即从中提取所有文件.但这似乎没有做任何事情:
$ tar xf *.tar
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?如何一次解压缩一堆文件?
我想tar和目录及其子目录中的所有.php和.html文件.如果我使用
tar -cf my_archive *
它会记录我不想要的所有文件.如果我使用
tar -cf my_archive *.php *.html
它忽略了子目录.我如何递归地使它tar,但只包括两种类型的文件?
我有一个目录,我想压缩通过电子邮件发送它,我试过这个:
tar -cvf filename.tar.gz directory_to_compress/
Run Code Online (Sandbox Code Playgroud)
但当我尝试通过电子邮件发送时,谷歌说:
filename.tar.gz contains an executable file. For security reasons, Gmail does not allow you to send this type of file.
Run Code Online (Sandbox Code Playgroud)
如何tar.gz
从命令行将目录压缩到文件中?