GNU/Linux >> Belajar Linux >  >> Linux

Kecualikan Jalur yang Membuat Temukan Keluhan Tentang Izin?

Saya perlu membuat daftar file dari volume disk. Beberapa direktori (semua direktori tersembunyi di bawah direktori root) memiliki izin aneh yang menyebabkan find komplain.

Saya mencoba mengecualikan semua jalur ini, tetapi satu direktori masih mengeluh:

find . -type f -not -path './.*/*'
find: ./.DocumentRevisions-V100: Permission denied

Haknya seperti ini (diatur oleh sistem operasi, jadi saya berasumsi mereka tidak boleh dikacaukan).

d--x--x--x root  wheel   .DocumentRevisions-V100

Bagaimana cara mengubah find pernyataan untuk secara efektif menghilangkan semua direktori tersembunyi agar tidak mengeluh. (Saya tidak ingin melakukan 2>/dev/null karena saya ingin tahu tentang masalah lain).

Jawaban yang Diterima:

Dengan GNU find atau temuan lain yang mendukung -readable dan -executable predikat:

find . -type d ! ( -readable -executable ) -prune -o -type f -not -path './.*/*' -print

Pertama, kami memangkas direktori yang tidak dapat dilalui. Jika kondisi tersebut tidak berlaku, coba kondisi lainnya.

Jika find tidak memiliki opsi ini, Anda dapat mencocokkan dengan izin file.

find . -type d ! -perm -u+rx -prune -o -type f ! -path './.*/*' -print

Linux
  1. Kecualikan Direktori Di Temukan?

  2. Bagaimana cara mengecualikan jalur absolut untuk tar?

  3. bash menemukan direktori

  1. grep rekursif:mengecualikan direktori tertentu

  2. Setara dengan perintah Unix find di Windows

  3. Jumlah file di setiap sub-direktori

  1. Cara mengaudit izin dengan perintah find

  2. Temukan File yang Tidak Dapat Dibaca Pengguna?

  3. gunakan SED secara rekursif di linux?