Biasanya Anda akan melakukan ini secara terprogram pada saat Anda membuat atau memindahkan file, tetapi dimungkinkan untuk memicu skrip setiap kali file dibuat atau dipindahkan ke folder menggunakan incron
. Siapkan file tab Anda menggunakan incrontab -e
dengan garis seperti ini, tetapi dengan jalur Anda tentu saja:
/path/to/dir0 IN_MOVED_TO,IN_CREATE /path/to/script $@/$#
Kemudian dalam /path/to/script
menulis tindakan ganti nama cepat. Ketahuilah bahwa skrip juga akan dipanggil untuk file baru yang Anda buat, sehingga harus menguji apakah file tersebut telah dinamai dengan tepat atau tidak. Dalam contoh ini memeriksa untuk melihat apakah file memiliki angka sepuluh digit untuk detik dari zaman sebagai bagian terakhir dari nama file, dan jika tidak, ia menambahkannya:
#!/bin/bash
echo $1 | grep -qx '.*_[0-9]\{10\}' || mv "$1" "$1_$(date +%s)"
Sunting: Ketika saya pertama kali menulis ini saya kekurangan waktu dan tidak tahu bagaimana membuat bash
pola yang cocok di sini. Gilles menunjukkan cara melakukan ini tanpa menggunakan grep menggunakan pencocokan ERE di bash:
#!/bin/bash
[[ ! ( $1 =~ _[0-9]{10}$ ) ]] && mv "$1" "$1_$(date +%s)"