Sepertinya chown dengan flag rekursif tidak akan berfungsi pada direktori atau file tersembunyi. Apakah ada solusi sederhana untuk itu?
37
Saya cukup yakin bahwa -R
benderanya berfungsi dengan baik - bagaimanapun juga itu selalu berlaku untuk saya. Apa yang tidak akan berfungsi, dan apa yang membuat saya tersandung di awal penggunaan baris perintah saya, gunakan *
dalam direktori dengan file / direktori tersembunyi. Melakukan
$ chown -R /home/user/*
tidak akan melakukan file dan direktori tersembunyi. Namun jika Anda mengikutinya
$ chown -R /home/user/.[^.]*
maka Anda akan melakukan semua file yang tersembunyi, (tetapi tidak .
atau ..
seperti yang /home/user/.*
akan dilakukan). Setelah mengatakan semua itu, saya harapkan
$ chown -R /home/user
untuk mendapatkan semua file dan direktori tersembunyi di dalamnya /home/user
- meskipun itu tentu saja juga akan mengubah izin direktori itu sendiri, yang mungkin bukan yang Anda inginkan.
chown
pada direktori memiliki efek samping bahwa Anda mengubah izin pada direktori itu sendiri serta semua isinya, yang mungkin atau mungkin tidak seperti yang Anda inginkan.chown nginx:nginx -R /path/to/.[^.]*
dan itu hanya mengubah kepemilikan menjadi file .dot tersembunyi. tidak semua.*
dan mengikutinya.[.^]*
untuk mendapatkan semua file.Saya percaya perintah berikut harus bekerja untuk ini
sumber
"chown -R" bekerja, tetapi sebuah alternatif akan menggunakan find.
sumber
+
alih-alih;
sebagai terminator ke -exec akan lebih efisien karena akan menggunakan jumlah garpu minimum yang diperlukan untuk dikunyah daripada satu garpu per file / direktoriAnda dapat mengubah
dotglob
atribut sementara untuk memperluas. file dan kemudian mengembalikannya.Lebih lanjut
dotglob
dapat ditemukan di sinisumber
Menggunakan untuk loop dengan
ls -A
pilihan, kita dapat menemukan semua file tersembunyi dan direktori mengecualikan.
dan..
kemudian mengubah kepemilikan untuk semua file tersembunyi dan direktori.Gunakan
xargs
opsi denganls -A
Untuk lebih jelasnya Klik Di Sini dan Kunjungi Situs saya
sumber
Juga, jika Anda seperti saya, Anda mungkin akan menjalankan chown kebanyakan dari direktori saat ini. Saya terbiasa menjalankannya seperti ini:
chown rails.rails -R *
. Cukup mengubah tanda bintang ke titik (kependekan dari direktori saat ini) seperti ini:chown rails.rails -R .
membawa semua direktori tersembunyi.sumber
chown
akan bekerja dengan file dan direktori tersembunyi. Dalam contoh berikut, kami akan mengubah kepemilikan pengguna dan grup untuk semua file di~/some/folder
. Semua file termasuk semua file yang tersembunyi (mis ..bashrc
,.profile
Dll.) Dan folder pada~/some/folder
level dan di bawah. Perhatikan khususnya bahwa kami tidak ingin mengubah kepemilikan~/some
, dan karenanya kami akan mengecualikan file~/some/..
dari perubahan kepemilikan.sumber
Untuk mengetahui semua file dalam direktori dan subdirektori saat ini untuk pengguna saat ini;
atau jika pengguna tidak dapat melihat beberapa file karena izin terbatas;
sumber
Anda bisa melakukan sesuatu seperti
The
-A
( capital A) adalah penting karena tidak termasuk '' dan '..'sumber