Làm cách nào để kiểm tra xem một tệp mới hơn tệp đích trong tập lệnh shell


2

Làm thế nào tôi có thể kiểm tra nếu một tệp mới hơn tệp đích?

Trong một kịch bản shell, dự định chạy trên máy Mac, tôi muốn làm một cái gì đó như thế này:

#!/bin/bash
if [ $SourceFile dateisgreater $TargetFile ] then
    echo "SourceFile is newer that Targetfile"
fi

Câu trả lời:


3
#/bin/bash
if [ "$SourceFile" -nt "$TargetFile" ]; then
    echo "SourceFile is newer than Targetfile"
fi

-nt có nghĩa là "mới hơn".

Tôi đã thêm dấu ngoặc kép quanh tên tệp vì nếu bạn cần trích dẫn về tiếng vang, thì bạn cũng cần trích dẫn về tên tệp ...


Trích dẫn xung quanh các biến là trong trường hợp các giá trị (tên của các tệp trong trường hợp này) có khoảng trắng. Nếu không trích dẫn và với khoảng trắng, bash sẽ không thể phân tích cú pháp nếu kiểm tra chính xác.
17/03/2015
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.