【发布时间】:2022-01-07 02:40:38
【问题描述】:
我正在尝试通过来自 Python 的 subprocess 调用调用 tar 命令。我面临的挑战是有很多文件传递给 tar,这导致命令抛出错误 @987654326 @
我正在运行的命令如下
subprocess.call(f"ulimit -s 99999999; tar -cz -f {output_file} {file_list}", cwd=source_dir, shell=True)
为了尝试克服错误,我添加了ulimit,这似乎没有帮助。我运行它的操作系统是 Ubuntu-20.04 & Pyhon 版本是 3.8
请帮我解决这个问题。
【问题讨论】:
-
尝试间接级别并将列表放入文件中? stackoverflow.com/questions/8033857/…(可能称为
mlylist.txt,并在tar 命令中添加-T mylist.txt) -
你无法控制命令行的最大长度,除非你重新编译源码。顺便说一句,
ulimit -s设置最大堆栈大小。 -
除了医生爱的聪明想法:你能不能把文件复制到某个临时目录(之后你会删除)?然后你只需将目录名称传递给
tar。 -
请不要跨堆栈多发帖 (unix.stackexchange.com/q/679620/117549)
标签: python python-3.x bash