Bagaimana cara saya menjalankan chmod
atau chown
menyembunyikan file secara rekursif ?
sudo chmod -R 775 *
tidak berfungsi pada file tersembunyi.
Hal yang sama berlaku untuk sudo chown -R user:group
.
Jika Anda baik-baik saja juga memilih direktori saat ini, lakukan itu dan -R
lakukan pengangkatan berat. -R
tidak mengabaikan file tersembunyi.
sudo chmod -R 775 .
* .*
) bukan cara teraman untuk melakukannya. Khususnya, itu akan muncul kembali ke direktori induk, yang berartichmod
juga saudara dari direktori saat ini. Cara yang tepat adalah* ..?* .[^.]*
atau, bahkan lebih baik (mengingat wildcard mungkin tidak cocok dengan file apa pun)$(ls -A)
.ls
unparseable; mencoba mengurai itu meminta masalah. Pendekatan yang tepat adalah dengan menggunakan shell globbing.sudo chmod 775 -R
akan menjadi perut buncit, jadi pertahankan jawaban ini .*
tidak menyertakan file tersembunyi secara default, tetapi jika Anda berada di bash, Anda dapat melakukan ini dengan:Baca lebih lanjut tentang itu di
builtin
manual bash :Ini akan membuat
*
menyertakan file tersembunyi juga.Nonaktifkan dengan:
sumber
zsh
?(D)
kualifikasi globbing, misalnyachmod -R 775 *(D)
Pilihan lain adalah menggunakan
find
saya suka karena Anda dapat memiliki kontrol berbutir halus atas itu.Satu-satunya downside adalah yang
find
memiliki sintaks berbeda pada versi yang berbeda.sumber
Semua file di direktori saat ini, secara rekursif, termasuk file tersembunyi:
Semua file di direktori saat ini, tidak secara rekursif, termasuk file tersembunyi:
Ini tidak akan mengubah nama file pengecualian yang dimulai dengan 2 titik, misalnya,
"./..thisonescapesunharmed.txt"
Juga, berhati-hatilah untuk tidak menghapus bit "x", atau semua direktori Anda tidak akan dapat diakses (satu membutuhkan bit x untuk cd ke dir).
Ingat peringatan ini: tidak pernah menggunakan telanjang
*
tapi./*
sebagai gantinya.Untuk menghindari masalah pengaturan izin pada direktori, gunakan
find
saja.sumber