【问题标题】:tar file with combination of directory name and original timestamp包含目录名称和原始时间戳组合的 tar 文件
【发布时间】:2023-04-02 08:41:02
【问题描述】:

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

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

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

【问题讨论】:

  • 你尝试了什么? Python 在哪里发挥作用?
  • @CristiFati,这不是 Python 问题。 Python 是一种可用于解决方案的工具,尽管您可能称它为矫枉过正。
  • @tnknepp:这是你的假设。我的观点是,这个问题目前的形式是无法回答的(没有 OP 的进一步澄清)。
  • @CristiFati:正确。当我发布我的答案时,我以为我知道 OP 的意图。但是,我的假设可能是错误的。 OP 应更新此问题以提供说明。

标签: python shell sh tar


【解决方案1】:

使用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))

【讨论】:

    【解决方案2】:

    好吧,您已经将 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)
    

    重击

    tmstamp=$(date '%Y%m%d')
    
    cd directory
    
    for dir in */
    do
      base=$(basename "$dir")
      tar -cf "${tmstamp}_${base}.tar" "$dir"
    done
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 2018-04-17
      • 2016-10-06
      • 2011-10-29
      • 1970-01-01
      相关资源
      最近更新 更多