Başlatıldığında, aşağıdaki komut dosyası bir dizindeki belirli bir türdeki (uzantı) tüm dosyaların izinlerini otomatik olarak değiştirir (bir kez). Bundan sonra komut kontrolleri dizini için her 5 saniyede yeni eklenen dosyalar ve izinlerini değiştirir eğer dosya Belirli bir türde (a, bu durumda .py
dosyası)
Birkaç seçenek vardır: Bu durumda, yeni eklenen dosyalar çalıştırılabilir yapar, ama doğrultusunda tanımlanan diğer eylemler de mümkündür: command = "chmod +x"
. Ayrıca, eylemin ne tür dosyalar (dil uzantıları) yapılması gerektiğini tanımlayabilir (değiştirebilirsiniz).
Nasıl kullanılır
Aşağıdaki komut dosyasını boş bir dosyaya kopyalayın. Farklı kaydedin change_permission.py
ve komutla arka planda çalıştırın:
python3 <script> <folder_to_watch>
Senaryo
#!/usr/bin/env python3
import subprocess
import time
import sys
directory = sys.argv[1]
command = "chmod +x"; check_interval = 5; extensions = (".py")
def current_files():
read = subprocess.check_output(["ls", directory]).decode("utf-8").strip()
return [item for item in read.split("\n") if item[item.rfind("."):] in extensions]
initial_files = current_files()
for file in initial_files:
subprocess.call(["/bin/bash", "-c", command+" "+directory+"/"+file])
while True:
update = current_files()
for file in update:
if not file in initial_files:
subprocess.call(["/bin/bash", "-c", command+" "+directory+"/"+file])
initial_files = update
time.sleep(check_interval)
* Not: sudo ayrıcalıklarına ihtiyacınız varsa, komut dosyasını sudo
vim
veyaemacs
yapmak mümkün olabilir .