Bagaimana cara saya menjalankan chmodatau chownmenyembunyikan file secara rekursif ?
sudo chmod -R 775 * tidak berfungsi pada file tersembunyi.
Hal yang sama berlaku untuk sudo chown -R user:group.
Bagaimana cara saya menjalankan chmodatau chownmenyembunyikan file secara rekursif ?
sudo chmod -R 775 * tidak berfungsi pada file tersembunyi.
Hal yang sama berlaku untuk sudo chown -R user:group.
Jawaban:
Jika Anda baik-baik saja juga memilih direktori saat ini, lakukan itu dan -Rlakukan pengangkatan berat. -Rtidak mengabaikan file tersembunyi.
sudo chmod -R 775 .
lsunparseable; mencoba mengurai itu meminta masalah. Pendekatan yang tepat adalah dengan menggunakan shell globbing.
sudo chmod 775 -Rakan menjadi perut buncit, jadi pertahankan jawaban ini .
* tidak menyertakan file tersembunyi secara default, tetapi jika Anda berada di bash, Anda dapat melakukan ini dengan:
shopt -s dotglob
Baca lebih lanjut tentang itu di builtinmanual bash :
Jika diset, Bash menyertakan nama file yang diawali dengan `. ' dalam hasil ekspansi nama file.
Ini akan membuat *menyertakan file tersembunyi juga.
chmod -R 775 *
Nonaktifkan dengan:
shopt -u dotglob
zsh?
(D)kualifikasi globbing, misalnyachmod -R 775 *(D)
Pilihan lain adalah menggunakan findsaya suka karena Anda dapat memiliki kontrol berbutir halus atas itu.
find <path to start from> -exec chown <options> {} \+
find -path '<path to include>' -exec chown <options> {} \+
Satu-satunya downside adalah yang findmemiliki sintaks berbeda pada versi yang berbeda.
Semua file di direktori saat ini, secara rekursif, termasuk file tersembunyi:
chmod 755 -R ./* ./.[!.]*
Semua file di direktori saat ini, tidak secara rekursif, termasuk file tersembunyi:
chmod 755 ./* ./.[!.]*
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 findsaja.
find . -type f -exec chmod `VALUE` {} \;
* .*) bukan cara teraman untuk melakukannya. Khususnya, itu akan muncul kembali ke direktori induk, yang berartichmodjuga saudara dari direktori saat ini. Cara yang tepat adalah* ..?* .[^.]*atau, bahkan lebih baik (mengingat wildcard mungkin tidak cocok dengan file apa pun)$(ls -A).