GNU/Linux >> Belajar Linux >  >> Linux

Xargs:Apakah Urutan Opsi Penting?

Masukkan 0

echo foo | xargs -L 1 -I '{}' echo '{}'

Keluaran 0

foo

Masukkan 1

echo foo | xargs -I '{}' -L 1 echo '{}'

Keluaran 1

{} foo

Mengapa mengubah urutan opsi xargs mengubah output?

Versi:xargs (GNU findutils) 4.6.0

Jawaban yang Diterima:

Saat opsi yang diberikan ke xargs bertentangan, urutan mungkin penting.

IEEE Std 1003.1-2008, Edisi 2016/Spesifikasi Basis Grup Terbuka Edisi 7 menambahkan teks berikut ke spesifikasi xargs:

-saya , -L , dan -n pilihan yang saling eksklusif. Beberapa implementasi menggunakan yang terakhir ditentukan jika lebih dari satu diberikan pada baris perintah; implementasi lain memperlakukan kombinasi opsi dengan cara yang berbeda.

Ini mengkodifikasi perilaku banyak implementasi xargs, kembali ke versi asli di PWB/Unix, yang halaman manualnya mengatakan

Saat ada konflik bendera (mis., -l vs. -n ), bendera terakhir didahulukan.

Dalam xargs versi GNU, -L menonaktifkan -I . sebelumnya pilihan. Jadi dalam contoh kedua Anda,

echo foo | xargs -I '{}' -L 1 echo '{}'

{} hanyalah argumen biasa yang diteruskan ke echo , tanpa penggantian yang dilakukan.

Dibandingkan dengan IEEE Std 1003.1, Edisi 2004/Spesifikasi Basis Grup Terbuka Edisi 6.


Linux
  1. Apa itu POSIX? Mengapa Penting bagi Pengguna Linux/UNIX?

  2. Apa yang Digema $? Mengerjakan??

  3. Bagaimana kernel Linux menentukan urutan panggilan __init?

  1. Apa yang dilakukan `set -x`?

  2. Di Linux/Unix, apakah .tar.gz versus .zip penting?

  3. Bagaimana bash menguji 'false'?

  1. Bagaimana Rm -r Melakukan Penghapusan Secara Rekursif? Dalam Urutan Apa?

  2. Mengapa `md5sum` Tidak Memberikan Hash yang Sama Seperti Internet?

  3. Apa arti - (tanda hubung) terakhir dalam opsi `bash`?