O/S = RHEL 7.2Çalışmıyor: find -print0 | xargs -0 bash -c "...."
beklediğiniz gibi, dbg baskı altında ilk iki satır"' derhal/home/mydir altındaki tüm dosyaları takip eder. Ama ikinci iki satırda gösterildiği gibi -print0 ve xargs -0 kullanırsam, dizindeki ilk dosya atlanır. Ekoyu echo dbg "$ 0" $ @ " olarak değiştirmeyi denedim. alt dizindeki dosyalar. Boş bir alt dizinde, 0 $ "bash" değerini döndürür. Eğer bash -c 'command' arg0 arg1 arg2 …
kullandığınızda
# This works
dir=/home/mydir
find "$dir" -maxdepth 1 -type f -print | xargs bash -c '/bin/echo dbg "[email protected]"'
# This skips the first file
dir=/home/mydir
find "$dir" -maxdepth 1 -type f -print0 | xargs -0 bash -c '/bin/echo dbg "[email protected]"'
İşleri aynen beklendiği (Linux Mint 17.3, GNU bash, versiyon 4.3.11 (1) -salınımı (x86_64-sitenizin PC gibi linux-gnu)). Her iki çizgi de aynı çıktıyı verir. – cwschmidt
Yararlı bilgi. RHEL 7.2'de test yapıyorum. Soruyu, benim gördüğüm gerçek davranışla ilgili bazı düzeltmelerle birlikte içerecek şekilde düzenledim. –
'xargs':' '' $ dir '' -maxdepth 1 -type f -exec bash -c '/ bin/echo dbg "$ @"' _ {} \; 'dizinine ihtiyacınız yoktur. Aslında, "bash" 'a bile ihtiyacınız yok: '' $ dir' '-maxdepth 1 -type f -exec/bin/echo dbg {} \; ' –