HP-UX ***** B.11.23 Kullanıcı Kılavuzu i643 sınırsız kullanıcı lisansı
find . -type d -name *log* | xargs ls -la
bana dizin isimlerini (dizin ismini içerenler log
) ve ardından bu dizin içindeki tüm dosyaları verir.
Dizinleri /var/opt/SID/application_a/log/
, /var/opt/SID/application_b/log/
, /var/opt/SID/application_c/log/
ve benzeri günlük dosyalarını içerir.
Yalnızca en son iki günlük dosyasının ls
genellikle kullandığım komutla listelenmesini istiyorum ls -latr | tail -2
.
Çıktı böyle bir şey olmalı ..
/var/opt/SID/application_a/log/
-rw-rw-rw- 1 user1 user1 59698 Jun 11 2013 log1
-rw-rw-rw- 1 user1 user1 59698 Jun 10 2013 log2
/var/opt/SID/application_b/log/
-rw-rw-rw- 1 user1 user1 59698 Jun 11 2013 log1
-rw-rw-rw- 1 user1 user1 59698 Jun 10 2013 log2
/var/opt/SID/application_c/log/
-rw-rw-rw- 1 user1 user1 59698 Jun 11 2013 log1
-rw-rw-rw- 1 user1 user1 59698 Jun 10 2013 log2
find . -type d -name *log* | xargs ls -la | tail -2
bana yukarıdaki sonucu vermiyor. Elde ettiğim son iki find . -type d -name *log* | xargs ls -la
komut dosyasının listesi
.
Bir borudan sonra komutları yönlendirebilir xargs
miyim? Ortaya çıkan dosyaların listesini yukarıdaki biçimde almak için başka nasıl sorgulayabilirim?
find . -type d -name *log* | xargs sh -c "ls -ltr | tail -10"
bana şu anki dizinde bulunan /var/opt/SID
ve içinde istediğim de olmayan 10 dizin adının bir listesini verir .
sh -c
Komut adını (parametre 0) ikinci argüman olarak beklediğinin farkında olun , bu yüzden her zaman yapmanız gerekir find . -type d -name *log* | xargs sh -c "ls -ltr | tail -10" lstail
( lstail
en sonunda, $0
oluşturulan kabuktaki gibi hizmet edecek ) dikkat edin. Aksi takdirde sonuçlarınızdan ilki bu rolü dolduracak ve kullanılmayacaktır.
*log*
kabuk genişletmek aksi takdirde.