[技术问题]怎样用tar压缩home目录下所有以.开头的文件和路径?
时间:2009-12-30
来源:互联网
我只要备份用户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
作者: waiting4you 发布时间: 2009-12-30
ls -dA1 ~/.* | grep -Ev '(^|/)\.[\.]?$' | tar -cjf foo.tar.bz2 -T -
作者: lolilolicon 发布时间: 2009-12-30
作者: waiting4you 发布时间: 2009-12-30
作者: 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
嘿嘿, 开个玩笑... 不过也不是不行啊
作者: CnkknD 发布时间: 2010-01-05
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28















