GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya bisa menggunakan perintah alias dengan xargs?

Alih-alih, ubah "gi" menjadi skrip

misalnya, di /home/$USER/bin/gi :

#!/bin/sh
exec /bin/grep -i "[email protected]"

jangan lupa untuk menandai file yang dapat dieksekusi.


Saran di sini adalah untuk menghindari xargs dan menggunakan loop "while read" daripada xargs:

find -name \*bar\* | while read file; do gi foo "$file"; done

Lihat jawaban yang diterima di tautan di atas untuk penyempurnaan guna menangani spasi atau baris baru dalam nama file.


Alias ​​​​khusus untuk shell - dalam hal ini, kemungkinan besar khusus untuk bash. Untuk mengeksekusi alias, Anda perlu mengeksekusi bash, tetapi alias hanya dimuat untuk shell interaktif (lebih tepatnya, .bashrc hanya akan dibaca untuk shell interaktif).

bash -i menjalankan shell interaktif (dan sources .bashrc).bash -c cmd menjalankan cmd .

Gabungkan keduanya:bash -ic cmd menjalankan cmd dalam shell interaktif, di mana cmd dapat berupa fungsi/alias bash yang ditentukan dalam .bashrc Anda .

find -name \*bar\* | xargs bash -ic gi foo

harus melakukan apa yang Anda inginkan.

Sunting:Saya melihat Anda menandai pertanyaan sebagai "tcsh", jadi solusi khusus bash tidak berlaku. Dengan tcsh, Anda tidak memerlukan -i , seperti yang terbaca .tcshrc kecuali Anda memberikan -f .

Coba ini:

find -name \*bar\* | xargs tcsh -c gi foo

Ini berhasil untuk pengujian dasar saya.


Linux
  1. Bagaimana cara mendapatkan persentase penggunaan prosesor dengan bash?

  2. Bagaimana saya bisa menggunakan dialog peringatan dengan Python di linux?

  3. Bagaimana saya bisa menggunakan SSH dengan proxy SOCKS 5?

  1. Bagaimana saya menggunakan Vagrant dengan libvirt

  2. Bagaimana cara menggunakan perintah jam tangan dan pekerjaan bersama di Bash?

  3. Bagaimana saya bisa menggunakan wildcard gaya ms-dos dengan ls dan mv?

  1. Cara menggunakan perintah riwayat Bash

  2. Cara Menggunakan Perintah 'cat' dan 'tac' dengan Contoh di Linux

  3. Bagaimana Cara Menggunakan Halaman Man Untuk Mempelajari Cara Menggunakan Perintah?