Oyun Alanına Dönüş
Koyma zamanı bulmak bazı (neredeyse) pratik kullanım için. Bir oyun alanı oluşturacağız ve öğrendiklerimizden bazılarını deneyeceğiz.
İlk önce, birçok alt dizin ve dosya içeren bir oyun alanı oluşturalım:
[ben@linuxbox ~]$ mkdir -p oyun alanı/dir-{001..100}
[ben@linuxbox ~]$ oyun alanı/dir-{001..100}/dosya-{A..Z} öğesine dokunun
[ben@linuxbox ~]$ mkdir -p oyun alanı/dir-{001..100}
[ben@linuxbox ~]$ oyun alanı/dir-{001..100}/dosya-{A..Z} öğesine dokunun
Komut satırının gücüne hayret edin! Bu iki satırla her biri 100 boş dosya içeren 26 alt dizin içeren bir oyun dizini oluşturduk. Bunu GUI ile deneyin!
Bu sihri gerçekleştirmek için kullandığımız yöntem, tanıdık bir komut içeriyordu (mkdir), egzotik bir kabuk genişletmesi (parantezler) ve yeni bir komut, dokunma. Birleştirerek mkdir ile -p seçenek (neden mkdir belirtilen yolların üst dizinlerini oluşturmak için) ayraç genişletmesi ile 100 alt dizin oluşturabildik.
The dokunma komut genellikle dosyaların erişim, değişiklik ve değişiklik zamanlarını ayarlamak veya güncellemek için kullanılır. Ancak, dosya adı argümanı var olmayan bir dosyanın argümanıysa, boş bir dosya oluşturulur.
Oyun alanımızda, adlı bir dosyanın 100 örneğini oluşturduk. Dosya. Onları bulalım:
[ben@linuxbox ~]$ oyun alanı bul -type f -name 'dosya-A'
[ben@linuxbox ~]$ oyun alanı bul -type f -name 'dosya-A'
Farklı olduğunu unutmayın ls, bulmak sıralı bir şekilde sonuç üretmez. Sırası, depolama aygıtının düzenine göre belirlenir. Dosyanın 100 örneğine sahip olduğumuzu şu şekilde doğrulayabiliriz:
[ben@linuxbox ~]$ oyun alanı bul -type f -name 'dosya-A' | wc -l
100
[ben@linuxbox ~]$ oyun alanı bul -type f -name 'dosya-A' | wc -l
100
Ardından, değişiklik zamanlarına göre dosyaları bulmaya bakalım. Bu, yedeklemeler oluştururken veya dosyaları kronolojik sırada düzenlerken yardımcı olacaktır. Bunu yapmak için önce değişiklik zamanını karşılaştıracağımız bir referans dosyası oluşturacağız:
[ben@linuxbox ~]$ oyun alanına/zaman damgasına dokunun
[ben@linuxbox ~]$ oyun alanına/zaman damgasına dokunun
Bu, adında boş bir dosya oluşturur. zaman damgası ve değişiklik zamanını mevcut zamana ayarlar. Bunu başka bir kullanışlı komut kullanarak doğrulayabiliriz, stat, ki bu bir tür çorbalanmış versiyonu ls. stat komut, sistemin anladığı her şeyi ortaya çıkarır
bir dosya ve özellikleri hakkında:
[ben@linuxbox ~]$ stat oyun alanı/zaman damgası
Dosya: "oyun alanı/zaman damgası"
Boyut: 0 Bloklar: 0 IO Blok: 4096 normal boş dosya Cihaz: 803h/2051d Inode: 14265061 Bağlantılar: 1
Erişim: (0644/-rw-r--r--) Uid: ( 1001/ me) Gid: ( 1001/ ben) Erişim: 2016-10-08 15:15:39.000000000 -0400
Modify: 2016-10-08 15:15:39.000000000 -0400
Change: 2016-10-08 15:15:39.000000000 -0400
[ben@linuxbox ~]$ stat oyun alanı/zaman damgası
Dosya: "oyun alanı/zaman damgası"
Boyut: 0 Bloklar: 0 IO Blok: 4096 normal boş dosya Cihaz: 803h/2051d Inode: 14265061 Bağlantılar: 1
Erişim: (0644/-rw-r--r--) Uid: ( 1001/ me) Gid: ( 1001/ ben) Erişim: 2016-10-08 15:15:39.000000000 -0400
Modify: 2016-10-08 15:15:39.000000000 -0400
Change: 2016-10-08 15:15:39.000000000 -0400
Eğer biz dokunma dosyayı tekrar ve ardından ile inceleyin stat, dosyanın zamanlarının güncellendiğini göreceğiz.:
[ben@linuxbox ~]$ oyun alanına/zaman damgasına dokunun
[ben@linuxbox ~]$ stat oyun alanı/zaman damgası
Dosya: "oyun alanı/zaman damgası"
Boyut: 0 Bloklar: 0 IO Blok: 4096 normal boş dosya Cihaz: 803h/2051d Inode: 14265061 Bağlantılar: 1
Erişim: (0644/-rw-r--r--) Uid: ( 1001/ me) Gid: ( 1001/ ben) Erişim: 2016-10-08 15:23:33.000000000 -0400
Modify: 2016-10-08 15:23:33.000000000 -0400
Change: 2016-10-08 15:23:33.000000000 -0400
[ben@linuxbox ~]$ oyun alanına/zaman damgasına dokunun
[ben@linuxbox ~]$ stat oyun alanı/zaman damgası
Dosya: "oyun alanı/zaman damgası"
Boyut: 0 Bloklar: 0 IO Blok: 4096 normal boş dosya Cihaz: 803h/2051d Inode: 14265061 Bağlantılar: 1
Erişim: (0644/-rw-r--r--) Uid: ( 1001/ me) Gid: ( 1001/ ben) Erişim: 2016-10-08 15:23:33.000000000 -0400
Modify: 2016-10-08 15:23:33.000000000 -0400
Change: 2016-10-08 15:23:33.000000000 -0400
Sonra, kullanalım bulmak oyun alanı dosyalarımızdan bazılarını güncellemek için:
[ben@linuxbox ~]$ oyun alanı bul -type f -name 'dosya-B' -exec touch '{}' ';'
[ben@linuxbox ~]$ oyun alanı bul -type f -name 'dosya-B' -exec touch '{}' ';'
Bu, oyun alanındaki tüm dosyaları günceller. dosya-B. Sonra kullanacağız bulmak tüm dosyaları referans dosyayla karşılaştırarak güncellenen dosyaları tanımlamak zaman damgası:
[ben@linuxbox ~]$ oyun alanı bul -type f -daha yeni oyun alanı/zaman damgası
[ben@linuxbox ~]$ oyun alanı bul -type f -daha yeni oyun alanı/zaman damgası
Sonuçlar, 100 örneğinin tümünü içerir. dosya-B. Bir gerçekleştirdiğimizden beri dokunma adlı oyun alanındaki tüm dosyalarda dosya-B güncelledikten sonra zaman damgası, onlar şimdi "daha yeni" zaman damgası ve böylece ile tanımlanabilir -daha yeni testi.
Son olarak, daha önce yaptığımız hatalı izin testine geri dönelim ve
[ben@linuxbox ~]$ oyun alanı bul \( -type f -not -perm 0600 \) -veya \(
-tip d -değil -perm 0700 \)
[ben@linuxbox ~]$ oyun alanı bul \( -type f -not -perm 0600 \) -veya \(
-tip d -değil -perm 0700 \)
Bu komut, tüm 100 dizini ve 2600 dosyayı listeler. oyun alanı (Hem de zaman damgası ve oyun alanı toplam 2702) çünkü hiçbiri “iyi izinler” tanımımıza uymuyor. Operatörler ve eylemler hakkındaki bilgimiz sayesinde, oyun alanımızdaki dosya ve dizinlere yeni izinler uygulamak için bu komuta eylemler ekleyebiliriz:
[ben@linuxbox ~]$ oyun alanı bul \( -type f -not -perm 0600 -exec chmod 0600 '{}' ';' \) -veya \( -type d -not -perm 0700 -exec chmod 0700 '{}' ';' \)
[ben@linuxbox ~]$ oyun alanı bul \( -type f -not -perm 0600 -exec chmod 0600 '{}' ';' \) -veya \( -type d -not -perm 0700 -exec chmod 0700 '{}' ';' \)
Günlük bazda, bu büyük bileşik komut yerine, biri dizinler için diğeri dosyalar için olmak üzere iki komut vermeyi daha kolay bulabiliriz, ancak bunu yapabildiğimizi bilmek güzel. yol. Buradaki önemli nokta, faydalı görevleri gerçekleştirmek için operatörlerin ve eylemlerin birlikte nasıl kullanılabileceğini anlamaktır.
Dökümanlar