Gunakan Pintasan Mac untuk meneruskan teks ke skrip shell yang memilih file teks yang paling baru diubah di satu folder lokal dan menambahkan entri Anda. Panduan ini menggunakan file contoh sekali pakai dan berhenti jika folder kosong atau stempel waktu terbaru sama (seri).

Tugas di sini spesifik: tambahkan entri singkat ke file teks biasa yang sudah ada tanpa memilih file tersebut secara manual setiap kali. Apple mendokumentasikan dukungan untuk skrip shell di dalam Pintasan Mac. Alur kerja di bawah menggabungkan kemampuan terdukung tersebut dengan pemilihan file zsh dan perilaku penambahan (append) yang terdokumentasi. Kenali Pintasan untuk macOS

Tentukan arti "file terbaru"

Artikel ini mendefinisikan terbaru sebagai paling baru diubah. Skrip hanya mempertimbangkan file reguler yang terlihat yang namanya diakhiri dengan .txt huruf kecil, langsung di dalam folder yang ditunjuk. Ia mengecualikan subfolder dan tautan simbolis. Aturan pemilihan ini berasal dari pola nama file dan penentu (qualifiers) zsh. Ekspansi

Definisi ini memengaruhi eksekusi berulang. Setelah Anda menambahkan ke sebuah file, waktu modifikasinya berubah, sehingga file tersebut umumnya tetap menjadi file yang memenuhi syarat paling baru. Jika niat Anda adalah mengikuti dokumen yang baru dibuat, waktu modifikasi adalah aturan yang berbeda; jangan asumsikan alur kerja ini menerapkan pemilihan berdasarkan tanggal pembuatan.

Sebelum membangun pintasan, pilih aturan yang sesuai dengan tugas Anda:

Tugas yang Anda inginkan Apakah contoh ini cocok?
Tambahkan ke file .txt yang paling baru diedit Ya
Tambahkan ke file dengan tanggal terbaru di namanya Tidak; nama file tidak ditafsirkan sebagai tanggal
Tambahkan ke file yang paling baru dibuat Tidak; waktu pembuatan tidak digunakan
Sertakan file di dalam subfolder Tidak; pemilihan dibatasi pada satu folder
Tambahkan ke dokumen rich-text atau PDF Tidak; contoh ini menulis teks biasa

Finder menyediakan pemeriksaan visual yang berguna. Buka folder dalam tampilan daftar dan klik judul kolom Tanggal Diubah; klik lagi jika perlu agar item terbaru berada di atas. Apple mendokumentasikan pengurutan kolom dan membalikkan urutan. Tampilan Finder membantu Anda memeriksa hasil, tetapi skrip melakukan pemilihan sendiri. Urutkan dan susun item di Finder pada Mac

Buat folder contoh sekali pakai

Contoh ini menggunakan folder bernama Shortcut Append Demo di dalam folder home Anda. Persiapan sengaja berhenti jika nama itu sudah ada, daripada menggunai isinya. Ia membuat dua file teks sintetis, dengan jeda dua detik sehingga file kedua seharusnya memiliki waktu modifikasi yang lebih baru.

Buka Terminal, tempel blok persiapan lengkap ini, dan tekan Return. Heredoc yang dikutip menjalankan perintah dalam proses zsh terpisah, sehingga kegagalan persiapan keluar dari proses tersebut.

/bin/zsh <<'ZSH'
emulate -L zsh
setopt ERR_EXIT
folder="$HOME/Shortcut Append Demo"

if ! /bin/mkdir "$folder"; then
  printf '%s\n' 'Setup stopped: use a new folder name if this one exists.' >&2
  exit 1
fi

printf '%s\n' 'Sample entry: blue notebook.' > "$folder/older.txt"
/bin/sleep 2
printf '%s\n' 'Sample entry: green notebook.' > "$folder/newer.txt"
printf 'Example folder: %s\n' "$folder"
ZSH

Persiapan menggunakan pengalihan keluaran untuk membuat file hanya setelah folder baru berhasil dibuat. Apple membedakan pengalihan keluaran biasa, yang menulis keluaran perintah ke file, dari pengalihan tambah (append), yang menambahkan keluaran di akhir. Alihkan masukan dan keluaran Terminal di Mac

Jika persiapan melaporkan folder sudah ada, pilih nama sekali pakai lain dan ubah penetapan folder di persiapan dan skrip pintasan di bawah. Jangan menjalankan kembali baris penulisan file individual terhadap folder yang sudah ada.

Bangun pintasan dan pertahankan masukan teks

Buat pintasan baru di aplikasi Pintasan dan beri nama Tambahkan ke File Teks Terbaru. Gunakan pencarian aksi untuk menambahkan aksi di bawah. Apple mendokumentasikan pencarian pustaka aksi dan memeriksa masukan yang diterima serta keluaran hasil setiap aksi melalui Tampilkan Info. Jelajahi daftar aksi di Pintasan pada Mac

  1. Tambahkan aksi Teks berisi entri sintetis Contoh entri: buku catatan oranye.
  2. Tambahkan Jalankan Skrip Shell segera setelahnya.
  3. Atur shell ke /bin/zsh.
  4. Atur masukan skrip ke keluaran aksi Teks sebelumnya.
  5. Atur Teruskan Masukan ke sebagai argumen.
  6. Ganti bidang skrip dengan skrip lengkap di bagian selanjutnya.

Koneksi yang dimaksudkan adalah satu nilai Teks ke satu argumen skrip. Skrip membaca argumen itu sebagai $1. Keluaran berhasilnya adalah konfirmasi teks berisi jalur tujuan; jalur itu bukan objek File Pintasan, dan keluaran bukan isi lengkap file.

Jaga masukan tetap terhubung ke keluaran Teks. Meneruskan file, daftar nama file, atau masukan tidak terkait pintasan akan mengubah apa yang sampai ke skrip. Skrip memeriksa jumlah argumen sehingga kumpulan masukan tak terduga tidak menjadi beberapa entri yang ditambahkan.

Jika skrip dinonaktifkan, buka Pintasan > Pengaturan, pilih Lanjutan, dan aktifkan Izinkan Menjalankan Skrip. Ini adalah kontrol Apple yang terdokumentasi untuk mengizinkan skrip di pintasan. Instruksi pengaturan skrip Apple

Tambahkan skrip yang memilih dan menambahkan

Tempel seluruh program ini ke dalam Jalankan Skrip Shell. Ia tidak memerlukan alat unduhan atau file skrip terpisah. Penetapan folder cocok dengan persiapan sekali pakai di atas.

emulate -L zsh
unsetopt CLOBBER APPEND_CREATE

fail() {
  printf '%s\n' "$1" >&2
  exit 1
}

(( $# == 1 )) || fail 'Expected exactly one text input.'
[[ -n "$1" ]] || fail 'The text input is empty.'

folder="$HOME/Shortcut Append Demo"
[[ -d "$folder" ]] || fail 'The example folder does not exist.'

files=( "$folder"/*.txt(N.om) )
(( ${#files} > 0 )) || fail 'No eligible .txt files were found.'

newest="${files[1]}"

if (( ${#files} > 1 )); then
  [[ "$newest" -nt "${files[2]}" ]] ||
    fail 'The newest timestamp is tied or the folder changed. Check the files.'
fi

[[ -f "$newest" && ! -L "$newest" ]] ||
  fail 'The selected file is no longer an eligible regular file.'
[[ -w "$newest" ]] || fail 'The selected file is not writable.'

if ! printf '\n%s\n' "$1" >> "$newest"; then
  fail 'Append failed; inspect the selected file before retrying.'
fi

printf 'Appended to: %s\n' "$newest"

Ekspresi pemilihan membangun array jalur file yang cocok. Di (N.om), N mengizinkan kecocokan kosong, . membatasi kecocokan ke file reguler, dan om mengurutkan berdasarkan waktu modifikasi dengan yang paling muda duluan. Menyimpan jalur dalam array menghindari pemecahan nama file di spasi. Ekspansi

Pemeriksaan selanjutnya mengharuskan file pertama lebih baru secara ketat dari yang kedua. Jika mereka memiliki waktu modifikasi yang sama, pintasan berhenti alih-alih diam memilih salah satu. zsh mendokumentasikan -nt untuk membandingkan usia file, bersama dengan pengujian file reguler, tautan simbolis, dan file yang dapat ditulis yang digunakan di sini. Ekspresi Bersyarat

Perintah tambah (append) menggunakan format printf tetap dan menyediakan entri Anda sebagai argumen %s-nya. Tanda persen dan garis miring terbalik di dalam entri karena itu diperlakukan sebagai teks, bukan instruksi pemformatan tambahan. Baris baru awal memisahkan entri dari teks yang ada; baris baru akhir mengakhinya. Jika file sudah diakhiri dengan baris baru, ini menghasilkan baris kosong antara entri. Perintah Bawaan Shell

Skrip juga membatalkan CLOBBER dan APPEND_CREATE. Dengan kedua opsi tidak disetel, zsh mendokumentasikan bahwa pengalihan tambah gagal ketika tujuan tidak ada. Hal ini penting jika file terpilih hilang sebelum penambahan: skrip seharusnya melaporkan kegagalan, bukan menciptakan pengganti di jalur lama. Pengalihan

Periksa hasil dengan file contoh

Jalankan pintasan sekali. Dengan folder contoh yang belum disentuh, tujuan yang diharapkan adalah newer.txt. Buka file itu dan periksa konten berikut. Ini adalah hasil yang diharapkan dari contoh, bukan klaim pengujian UI Mac yang selesai.

Contoh entri: buku catatan hijau.

Contoh entri: buku catatan oranye.

Buka older.txt juga. Ia seharusnya masih hanya berisi Contoh entri: buku catatan biru. Memeriksa kedua file memverifikasi dua bagian tugas: memilih satu tujuan dan mempertahankan file lain.

Coba entri sintetis kedua dengan mengubah aksi Teks ke Contoh entri: buku catatan kuning. dan jalankan lagi. Harapkan entri terpisah lagi di newer.txt, asalkan tidak ada file memenuhi syarat lain yang menjadi lebih baru. Menjalankan pintasan dua kali dengan masukan yang sama menambahkan masukan itu dua kali; program ini tidak mendeteksi entri duplikat.

Contoh ini diperiksa terhadap dokumentasi tapi tidak dieksekusi di sini: lingkungan yang tersedia tidak memiliki Pintasan macOS maupun zsh. Selesaikan pemeriksaan file sekali pakai di Mac Anda sebelum menyesuaikan penetapan folder.

Pahami folder kosong, tabrakan, dan file yang berubah

Alur kerja memerlukan tujuan yang sudah ada. Folder tidak ada, folder kosong, atau folder yang hanya berisi item tidak memenuhi syarat menghasilkan kesalahan sebelum penambahan. Ia tidak membuat file default, memilih subfolder, atau kembali ke dokumen dengan nama berbeda.

Tabrakan nama ditangani dengan menghindari pembuatan tujuan sepenuhnya. Persiapan berhenti ketika nama foldernya sudah ada. Selama eksekusi pintasan normal, file terpilih mempertahankan namanya saat ini: skrip tidak mengganti namanya atau menyimpan salinan kedua. Perilaku file-hilang terpisah dikendalikan oleh opsi tambah zsh yang terdokumentasi. Pengalihan

Gunakan urutan diagnostik kecil ini jika hasil berbeda dari harapan Anda:

  1. Periksa penetapan folder. Harus cocok dengan folder yang dibuat saat persiapan.
  2. Periksa kelayakan. Pola contoh menyertakan file reguler terlihat yang diakhiri .txt huruf kecil di tingkat atas folder.
  3. Periksa urutan modifikasi. Periksa Tanggal Diubah di Finder, ingat bahwa mengedit file bisa menjadikannya tujuan berikutnya.
  4. Periksa stempel waktu seri (tied). Edit dan simpan file contoh yang dimaksudkan nanti, lalu periksa urutan lagi.
  5. Periksa koneksi aksi. Satu nilai teks harus sampai ke shell sebagai satu argumen.

Skrip diperuntukkan folder yang tidak berubah selama eksekusi. Pemilihan dan penulisan adalah operasi terpisah: proses lain bisa mengedit, mengganti, atau menambah file di antaranya. Pemeriksaan tidak mengubah alur kerja menjadi transaksi, dan kegagalan penulisan bisa meninggalkan entri tambahan parsial. Periksa file sebelum mencoba lagi setelah kesalahan tambah.

Di mana filter file native cocok

Apple mendokumentasikan Filter File sebagai aksi yang menerima konten, menyaringnya menggunakan filter, dan meneruskan hasil yang cocok ke depan. Kontrol filter umumnya bisa mengurutkan hasil dan membatasi jumlahnya. Operasi-operasi itu membantu memilih file; mereka sendiri tidak menambahkan teks. Pengenalan aksi Temukan dan Filter, Tambahkan parameter filter

Panduan ini mempertahankan pemilihan dan penulisan bersama dalam skrip shell sehingga pola file, perilaku seri, dan persyaratan file yang ada bersifat eksplisit. Jika Anda membangun rantai berbeda menggunakan aksi file, periksa Tampilkan Info setiap aksi dulu: hasil File, isi file yang dikonversi ke Teks, dan jalur yang direpresentasikan sebagai Teks adalah nilai berbeda. Apple menyediakan deskripsi aksi tersebut khusus untuk mengidentifikasi tipe masukan dan keluaran. Jelajahi daftar aksi di Pintasan pada Mac

Setelah contoh berperilaku seperti yang diharapkan, pertahankan kontrak yang sama yang jelas saat menyesuaikannya: satu entri teks, satu folder lokal yang ditunjuk, dan satu file memenuhi syarat yang paling baru secara ketat. Itu membuat setiap eksekusi bisa diprediksi dan memberi Anda tempat konkret untuk menyelidiki setiap kali pintasan berhenti.

Sumber