Jika Anda menggunakan OS X maka Anda mungkin akrab dengan file ".DS_Store" tersembunyi terkenal yang dihasilkan sebagai hasil dari menggunakan Finder.
Tantangannya adalah menulis kode yang akan melalui seluruh sistem file dan menghapus semua file bernama ".DS_Store".
Golf kode klasik - kode menang paling pendek.
Klarifikasi:
Kode tidak perlu menghapus file .DS_Store yang memerlukan superuser; menganggap tidak ada file seperti itu.
Kode seharusnya hanya menghapus file .DS_Store yang relevan dan tidak ada yang lain.
code-golf
file-system
arshajii
sumber
sumber
.DS_Store
juga ?Jawaban:
zsh, 19
(Jadikan 16 jika tidak apa-apa untuk pergi
-f
.)sumber
Bash *,
4030Ini harus menanganinya (tidak terlalu golf, tidak. Terlalu lambat). Bash sepertinya benar karena kami tidak harus berurusan dengan omong kosong "sistem impor". Jika Anda ingin meminta eksekusi di lingkungan apa pun, tambahkan 4 karakter untukbash
dan 1 untuk umpan baris.* shell apa pun kurasa, tidak bisa keluar dari kebiasaan dengan asumsi shell bourne lagi adalah satu-satunya.
sumber
find
OS X? Dengan GNUfind
bahkan lebih pendek:find / -name .DS_Store -delete
.bash
4 atau yang lebih baru denganglobstar
opsi shell diaktifkan, atauzsh
:rm /**/.DS_Store
..DS_Store
direktori saya di mana saya memiliki barang-barang penting.Ruby:
3833 karaktersumber
Dir[...]
adalah jalan pintas untukDir.glob(...)
, ini akan menghemat 5 karakter.Kernel
. Terima kasih, @padde.ikan, 16
(Buat 19 jika
-f
diperlukan untuk menghapus.DS_Store
dalam direktori read-only.)sumber
Shell, 25
Membutuhkan
locate
basis data yang berfungsi .sumber
Python 3 , 80 byte
Cobalah online!
Tidak berarti dapat bersaing, tetapi hanya untuk itu :)
sumber
CMD, 17
Cukup mudah.
/s
diperlukan untuk mencari di dalam subdirektori juga."
digunakan untuk menghindari/
char yang seharusnya diartikan sebagai argumen (tidak valid).sumber
temukan, 38
find
Solusi previus jelas salah: artinya menghapus semua yang dinamai.DS_Store
termasuk direktori, tautan, file khusus dll.Tapi:
ini adalah solusi minimal yang digunakan
find
.DISCLAMER : Saya sangat menyarankan untuk tidak benar-benar menggunakan solusi ini pada kotak * nix nyata: mencoba menghapus sesuatu secara rekursif
/
adalah ide yang sangat buruk . Anda diperingatkan.EDIT :
Jika perbedaan antara file, direktori, tautan (keras dan simbolis), pipa bernama, soket, file khusus, sistem file semu tidak jelas bagi Anda, saya sarankan untuk google beberapa istilah yang tidak diketahui ini. Anda akan terkejut, lebih bijak, dan kurang rentan terhadap (katstrofik) kesalahan.
EDIT2 : Yang lebih relevan: OP menulis "Kode hanya menghapus file .DS_Store yang relevan dan tidak ada yang lain." : jadi, jika seseorang peduli untuk membaca persyaratan yang membosankan , semua solusi yang menghapus lebih dari file-file ini lucu, cerdas, dll. tapi salah .
sumber
find
Solusi sebelumnya benar. Pertanyaannya mengatakan "hapus file apa pun yang bernama" .DS_Store "". Jadi tidak ada persyaratan khusus berdasarkan jenis file.