GNU/Linux >> Belajar Linux >  >> Linux

apa perbedaan xargs bentween dengan kawat gigi dan tanpa di linux

xargs rm akan memanggil rm dengan semua argumen sebagai parameter berangkat dengan spasi.

xargs -i{} rm {} akan memanggil rm {} untuk setiap argumen dan {} akan digantikan oleh argumen saat ini.

Jika Anda memiliki 2 argumen a.txt dan b.txt , xargs rm akan memanggil ini

rm a.txt b.txt

Tapi xargs -i{} rm {} akan memanggil

rm a.txt
rm b.txt

Ini karena -i opsi menyiratkan -L 1 pilihan yang berarti perintah rm hanya akan mengambil 1 baris setiap waktu. Dan di sini setiap baris hanya berisi 1 argumen.

Periksa tautan Ideone ini untuk mendapatkan lebih banyak ide tentangnya.


Dengan kawat gigi itu akan memunculkan satu rm proses per file. Tanpa kawat gigi, xargs akan meneruskan sebanyak mungkin nama file ke setiap rm perintah.

Bandingkan

ls | xargs echo

dan

ls | xargs -i echo '{}'

Opsi -i (setara dengan --replace) membuat semacam placeholder tempat xargs menyimpan input yang baru saja diterima. Dalam perintah kedua Anda, placeholdernya adalah "{}", ini berfungsi seperti opsi find -exec. Setelah ditentukan, xargs akan mengganti placeholder ini dengan seluruh baris input. Jika Anda tidak menyukai nama "{}", Anda bisa mendefinisikannya sendiri:

ls | xargs -iPLACEHOLDER gema PLACEHOLDER

Dalam kasus Anda, kedua perintah menghasilkan hasil yang sama. Dalam bentuk kedua, Anda hanya memperjelas perilaku default dengan opsi -i.


Linux
  1. Apa yang baru dengan rdiff-backup?

  2. Apa Itu Podman Dan Bagaimana Cara Menginstal Podman Di Linux

  3. Apa itu FirewallD Dan Bagaimana Menerapkannya Di Linux

  1. Apa itu Perintah Chown di Linux dan Cara Menggunakannya

  2. Flatpak di Linux:Apa Itu dan Bagaimana Menginstal Aplikasi dengannya

  3. Perekaman Layar di Linux Dengan OBS dan Wayland

  1. Apa itu NFS dan bagaimana cara menginstalnya di Linux

  2. Temukan File dengan Perintah Temukan dan Temukan di Linux

  3. Apa yang salah dengan linux/if.h dan net/if.h?