带有目录名和原始时间戳组合的tar文件

时间:2018-04-09 18:33:38

标签: python shell sh tar

我想创建包含组合目录名称和原始时间戳的tar文件。有这么多文件需要以上述格式进行转换。

对于下面的目录,我希望新的tar文件名为rs_jul_29_2016.tar

drwxr-xr-x   3 root root  4096 Jul 29  2016 rs

2 个答案:

答案 0 :(得分:0)

使用os.stat()获取上次修改时间,并使用datetime将其转换为所需的字符串时间戳。

import os
from datetime import datetime

filename = 'rs'
st = os.stat(filename)
modified_time = datetime.fromtimestamp(st.st_mtime)
tar_filename = modified_time.strftime('{}_%b_%m_%Y.tar'.format(filename))

答案 1 :(得分:0)

嗯,你把Python和shell / sh都标记为关键字,所以这里有两个。

的Python

import os
import tarfile

dst = '/destination/directory/path/'
src = '/source/directory/path/'

# list current date
heute = dt.date.today().strftime('%Y%m%d_')

# assuming only have directories in current directory
for d in os.listdir(src):
    # define .tar destination filename
    dst_fn = dst + heute + d + '.tar'

    with tarfile.open(dst_fn, 'w') as fid:
        fid.add(d)

的bash

tmstamp=$(date '%Y%m%d')

cd directory

for dir in */
do
  base=$(basename "$dir")
  tar -cf "${tmstamp}_${base}.tar" "$dir"
done

这两个都应该为每个感兴趣的目录创建一个tar文件。我的建议:创建一个虚拟目录并在完成之前对每个目录进行测试,以确保...