如何从文本文件执行多个mv命令?

2024-10-02 02:38:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有multiply mv命令的mover文件,比如

mv /home/foo/oldTest1/user1.txt /home/foo/newTest1/user1.txt
mv /home/foo/oldTest33/user21.txt /home/foo/newTest33/use21.txt
mv /home/foo/oldTest99/user44.txt /home/foo/newTest99/use44.txt

如何逐行运行mv命令


Tags: 文件命令txthomefoomultiplymovermv
2条回答

subrpcoess模块可用于使用python执行bash命令。创建一个python脚本,运行_bash_commands.py,如下所示:

import sys
import subprocess

def main(input_file):
    with open(input_file,'r',encoding='utf-8')as f:
        command = f.read()
        subprocess.Popen(command, shell=True)

if __name__ == '__main__':
    main(sys.argv[1])

假设commands.txt包含mv命令,将其作为参数传递给python脚本

python run_bash_commands.py commands.txt

假设:

  • 文件路径不包含空白字符
  • 目录中的文件名具有“.txt”扩展名

那么请你试试:

sed -E 's#/[^/[:blank:]]+\.txt##g' movers_file.txt | bash

sed命令按您的意愿从命令行中删除文件名 要传递给bash

请确保mover file完全在您的控制之下 不允许其他人添加像:rm -rf /*这样的邪恶代码

相关问题 更多 >

    热门问题