我想要创建一个脚本来监视我的本地文件夹,每次它收到以frm*开头的文件时,都使用dos2unix来转换它。
这个脚本总是在运行,并且一直在转换相同的文件,这些文件已经被转换了,所以我认为这可能是一个改进。
我现在拥有的是:
while true
do
dos2unix //path_to_folder/frm*
done有什么帮助吗?谢谢!
发布于 2014-10-24 17:25:54
诀窍是按一定的间隔检查文件夹的内容,并将文件列表与最后一次检查进行比较。由于只需要转换新文件,所以可以跳过上一次列表中的文件。
下面的脚本就是这样做的。它是用python编写的,但是在任何语言中都是一样的。
它所做的:
当脚本启动时,它会在目录中列出文件列表。
然后,在一个循环中,每5秒:
#!/usr/bin/env python3
import subprocess
import time
directory = "/path/to/your/files"
def current_files():
read = subprocess.check_output(["ls", directory]).decode("utf-8").strip()
return [item for item in read.split("\n")]
initial_files = current_files()
while True:
update = current_files()
for item in update:
if (item in initial_files, item.startswith("frm")) == (False, True):
subprocess.call(["/bin/bash", "-c", "dos2unix", directory+"/"+item])
initial_files = update
time.sleep(5)将脚本复制到一个空文件中,设置文件夹的路径,将其保存为convert.py,然后通过命令在后台运行脚本:
python3 /path/to/convert.pyhttps://askubuntu.com/questions/541083
复制相似问题