Khi được khởi tạo, tập lệnh bên dưới sẽ tự động thay đổi quyền của tất cả các tệp thuộc loại đã cho (phần mở rộng) trong một thư mục (một lần). Sau đó, tập lệnh sẽ kiểm tra thư mục cứ sau 5 giây cho các tệp mới được thêm và thay đổi quyền nếu tệp thuộc loại đã cho (trong trường hợp này là .py
tệp)
Nó có một vài tùy chọn: trong trường hợp này, nó làm cho các tệp mới được thêm vào có thể thực thi được, nhưng các hành động khác cũng có thể, như được định nghĩa trong dòng : command = "chmod +x"
. Ngoài ra, bạn có thể xác định (thay đổi) về loại tệp (phần mở rộng ngôn ngữ) mà hành động nên được thực hiện.
Cách sử dụng
Sao chép tập lệnh dưới đây vào một tập tin trống. Lưu nó dưới dạng change_permission.py
và chạy nó trong nền bằng lệnh:
python3 <script> <folder_to_watch>
Kịch bản
#!/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)
* Lưu ý: nếu bạn cần đặc quyền sudo, chỉ cần chạy tập lệnh với sudo
vim
hoặcemacs
để làm điều đó cho bạn.