2010-11-15 4 views
10

Có thể định dạng đầu ra thời gian của chỉ số không? Tôi đang sử dụngĐịnh dạng thời gian UNIX UNIX

stat -c '%n %A %z' $filename 

trong tập lệnh bash, nhưng định dạng thời gian của nó không phải là thứ tôi muốn. Có thể thay đổi định dạng này trong lệnh không, hoặc tôi có phải thực hiện thủ công sau này không?

Một ví dụ đầu ra sau:

/lib drwxr-xr-x 2010-11-15 04:02:38.000000000 -0800 
+0

câu hỏi của bạn là mơ hồ, vui lòng cập nhật câu hỏi của bạn với sản lượng dự kiến ​​của bạn – ajreal

+1

đầu ra là không liên quan; tôi chỉ muốn biết nếu định dạng có thể bên trong của stat. – scott77777

Trả lời

6

Bạn có thể thử một cái gì đó như:

date -d "1970-01-01 + $(stat -c '%Z' $filename) secs" 

nào cung cấp cho bạn chỉ ngày. Bạn có thể định dạng ngày bằng cách sử dụng tùy chọn định dạng ngày (xem man date), ví dụ:

date -d "1970-01-01 + $(stat -c '%Z' $filename) secs" '+%F %X' 

này không cung cấp cho bạn tên và quyền nhưng bạn có thể làm điều đó như:

echo "$(stat -c '%n %A' $filename) $(date -d "1970-01-01 + $(stat -c '%Z' $filename) secs" '+%F %X')" 
5

Bạn có thể chỉ đơn giản là dải của phần thập phân như thế này:

stat -c '%n %A %z' "$filename" | sed 's/\(:[0-9]\{2\}\)\.[0-9]* /\1 /' 

Edit:

Dưới đây là một cách khác để cắt phần thập phân:

stat -c '%n %A %.19z' "$filename" 

Điều này phụ thuộc vào ngày là 19 ký tự dài: 2010-11-15 04:02:38