+ -
当前位置:首页 → 问答吧 → [技术问题]怎样用tar压缩home目录下所有以.开头的文件和路径?

[技术问题]怎样用tar压缩home目录下所有以.开头的文件和路径?

时间:2009-12-30

来源:互联网

如题,我想用tar的增量压缩方法备份etc目录和home目录
我只要备份用户home下以.开头的那些文件和目录,应该怎样写tar命令呢?谢谢!
tar -jcf backup_home.tar.bz2 ~/.*(这样不行,会把.和..也算进去的,应该怎样写呢?)
谢谢大家

作者: waiting4you   发布时间: 2009-12-30

.和..不是目录

作者: qiang_liu8183   发布时间: 2009-12-30

我也很期待答案

作者: digwtx   发布时间: 2009-12-30

這個倒是一個很嚴重的問題,.........期待別人的回答......

作者: jiuny0209   发布时间: 2009-12-30

碰到这种情况我一般都在上一级目录进行打包

作者: ggarlic   发布时间: 2009-12-30

代码:
tar -jcf backup_home.tar.bz2 ~/.[^.]*
这将排除 . 和 .. , 以及 所有以 .. 开头的文件/文件夹

作者: lolilolicon   发布时间: 2009-12-30

谢谢楼上,尤其谢谢lolilolicon,达到我想要的效果了

作者: waiting4you   发布时间: 2009-12-30

代码:
ls -dA1 ~/.* | grep -Ev '(^|/)\.[\.]?$' | tar -cjf foo.tar.bz2 -T -
这样写的话就能严格地 仅仅排除 . 和 ..

作者: lolilolicon   发布时间: 2009-12-30

好的,感谢!

作者: waiting4you   发布时间: 2009-12-30

tar cjvf confbackup-$(date +\%Y\%m\%d).tar.bz2 .[^.]*

作者: yangzhe1990   发布时间: 2009-12-31

备份配置,我的习惯是这样的
在 $HOME 建一个目录,然后把配置分类放在里面
然后把包这个目录
ls -lh > link.txt 做一个脚本来还原它

备份 /etc 的就做成脚本,把要备份的文件cp 到指定目录下

以下是还原link的脚本
代码:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import sys,os,string
from stat import *

#===============================================
##### ls -Al|grep MultiConfigDir|grep ^l > link_files.txt
#===============================================
def MainFunc(IsTest):
 InputFile = "link_files.txt"
 TxtFileHandle = open(InputFile, 'r')
 print 'Start Read File...\n'

 try:
#-------------------------------------------------------- 
 while True:
 ReadStr = TxtFileHandle.readline()
 if not ReadStr:
 print '\nEnd File....\n'
 break
 ListStr = ReadStr.split()
 #print ListStr
 if (len(ListStr) == 0):
 continue

 print ListStr[0]
 if ListStr[0].startswith('#'):
 #print "startswith('#')"
 continue

 if ListStr[0].startswith("l"):
 if (len(ListStr) == 10):
 #print "7 = %s 9 = %s" % (ListStr[7], ListStr[9])
 RetVal = ProcOneLine(ListStr[9], ListStr[7], IsTest)
 if (RetVal == False):
 break
#-------------------------------------------------------- 
 #except: 
 finally:
 TxtFileHandle.close()

#=-----------------------------------------------------------------
def ChkAndMkDir(DirNameStr):
 if (not os.path.exists(DirNameStr)): 
        os.system("mkdir -pv %s" % DirNameStr)

def ChkIsExists(FileStr):
 if (os.path.exists(FileStr)):
 return True
 else:
 return False

def ChkIsDir(DirStr):
 StatMode = os.stat(DirStr)[ST_MODE]
 if (S_ISDIR(StatMode)):
 return True
 else:
 return False

 #if (os.path.isfile(DirStr)):
 # return False
 #else:
 # return True

def ChkIsLink(LinkStr):
 #StatMode = os.stat(LinkStr)[ST_MODE]
 if (os.path.islink(LinkStr)):
 #if (S_ISLNK(StatMode)):
 return True
 else:
 return False
#=-----------------------------------------------------------------
def ProcOneLine(SrcStr, DestStr, IsTest):
 if (not ChkIsExists(SrcStr)):
 #print "Target Not Found!"
 return True
 
 BackupConfDir = "BackupConfDir/"
 #--------Clean Start----
 if (ChkIsExists(DestStr)):
 if (ChkIsLink(DestStr)):
 
 ReadLink = os.readlink(DestStr)
 if (ReadLink == SrcStr):
 print "link = %s Yes Euery" % ReadLink
 return True
 else:
 print "link = %s No Eqery" % ReadLink
 #return True

 if (True == IsTest):
 print "os.unlink(%s)" % DestStr
 else:
 print "os.unlink(%s)" % DestStr
 #if (os.unlink(DestStr)):
 if (os.system("unlink %s" % DestStr) == 0):
 print "unlink OK"
 else:
 print "unlink Fail"
 else:
 #-------Add user input
 if (ChkIsDir(DestStr)):
 result = ask_YNQ("Delete ==== %s === Dir ?" % (DestStr))
 if (result == "quit"):
 return False

 if (result == "yes"):
 if (True == IsTest):
 print "os.rmdir(%s) " % DestStr
 else:
 ChkAndMkDir(BackupConfDir)
 os.system("cp %s %s -rf" % (DestStr, BackupConfDir))
 print "os.rmdir(%s) " % DestStr
 #if (os.rmdir(DestStr)):
 if (os.system("rm %s -rf" % DestStr) == 0):
 print "rmdir() OK"
 else:
 print "rmdir() Faile"
 else:
 return True

 else:
 result = ask_YNQ("Delete === %s === File ?" % (DestStr))
 if (result == "quit"):
 return False
 if (result == "yes"):
 if (True == IsTest):
 print "os.remove(%s)" % DestStr
 else:
 ChkAndMkDir(BackupConfDir)
 os.system("cp %s %s -f" % (DestStr, BackupConfDir ))
 print "os.remove(%s)" % DestStr
 #if (os.remove(DestStr)):
 if (os.system("rm -f %s" % DestStr) == 0):
 print "os.remove OK"
 else:
 print "os.remove False"
 else:
 return True
 else:
 print "%s is Not Exists" % DestStr
 #----Clean Over----- 

 if (True == IsTest):
 print "os.symlink(%s, %s) " % (SrcStr, DestStr)
 else:
 print "os.symlink(%s, %s) " % (SrcStr, DestStr)
 #os.symlink(SrcStr, DestStr)
 if (os.system("ln -sv %s %s" % (SrcStr, DestStr)) == 0):
 print "ln -sv %s %s OK" % (SrcStr, DestStr)
 else:
 print "ln -sv %s %s faile" % (SrcStr, DestStr)
 return True
#=-----------------------------------------------------------------
def ask_ok(prompt):
 while True:
 ok = raw_input(prompt)
 if ok in ('y', 'ye', 'yes'):
 return True
 elif ok in ('n', 'no', 'nop', 'nope'):
 return False
 else:
 print 'yes or no,please'
 
def ask_YNQ(prompt):
 while True:
 ok = raw_input(prompt)
 if ok in ('y', 'ye', 'yes'):
 return "yes"
 elif ok in ('n', 'no', 'nop', 'nope'):
 return "no"
 elif ok in ('q', 'quit'):
 return "quit"
 else:
 print 'yes or no or quit,please'


#while 1:
# flag = ask_ok('are you really want to quit?')
# if flag == True:
# break
#print 'out'

#=-----------------------------------------------------------------
if __name__ == "__main__":
 IsTest = True
 if (len(sys.argv) > 1):
 if (sys.argv[1] in ('true', 'True')):
 print "IsTest is False"
 IsTest = False
 else:
 print "IsTest is True"
 print "MainFunc Start"
 MainFunc(IsTest)
 print "MainFunc Over"
# SrcStr = "12341325"
# if (ask_ok("Delete %s Dir ?" % (SrcStr, ))):
# print "delete ..."
# else:
# print "Esc"
#=-----------------------------------------------------------------
# os.path.exists(path)
# if os.path.isfile("c:\windows"): 
# print "file" 
# else: 
# print "directory" 
# os.symlink(src, des)
# unlink( path) 
# mkdir( path[, mode])
之前还写了个自动压缩这个目录上传到邮箱的脚本

作者: axlrose   发布时间: 2009-12-31

强,收藏了~~
我用的是tar的-g命令增量备份,还不错的说

作者: waiting4you   发布时间: 2010-01-04

开个natilus, 显示隐藏文件, 选中要备份的点文件, 右键, 压缩

嘿嘿, 开个玩笑... 不过也不是不行啊

作者: CnkknD   发布时间: 2010-01-05

热门下载

更多