GNU/Linux >> Belajar Linux >  >> Linux

Karakter ekor dan wildcard

Solusi 1:

Saya yakin Anda ingin:

tail -n 10 *-access.log

Mengenai mengapa :
Saya tidak berpikir itu ada hubungannya dengan globbing:

tail -10 foo-access.log arf-access.log 
tail: option used in invalid context -- 1

Saya pikir kebetulan glob Anda berkembang menjadi satu file. Ini mungkin ada hubungannya dengan beberapa parsing opsi kuno yang saya terlalu malas untuk mencoba membaca, tetapi jika Anda benar-benar ingin tahu, lihat di tail.c di sumber coreutils dan membedah fungsi berikut:

parse_obsolete_option (int argc, char * const *argv, uintmax_t *n_units)

Solusi 2:

Meski agak tua, pertanyaannya masih relevan. Saya menemui masalah serupa

ssh myserver.com 'tail -2 file-header*'

yang memberi saya kesalahan

ekor:opsi yang digunakan dalam konteks yang tidak valid -- 2

namun, membuntuti hanya satu file, seperti

ssh myserver.com 'tail -2 file-header-file-one'

bekerja dengan baik. Melihat sumber tail.c menunjukkan ekor itu dimulai dengan mengurai usang opsi, lalu uraikan sisanya (yaitu opsi yang belum diproses), opsi reguler. Namun, parse_obsolete_option() mengharapkan penggunaan "usang", dengan hanya satu file sebagai argumen.
Jadi saat menyediakan lebih banyak file, fungsi segera kembali, dan biarkan parser biasa tersedak -2 (mengharapkan -n 2 ).

  /* With the obsolete form, there is one option string and at most
     one file argument.  Watch out for "-" and "--", though.  */
  if (! (argc == 2
         || (argc == 3 && ! (argv[2][0] == '-' && argv[2][1]))
         || (3 <= argc && argc <= 4 && STREQ (argv[2], "--"))))
    return false;

Kesimpulannya, lebih baik untuk selalu menggunakan -n bentuk biasa, mengetahui bahwa kode "usang" hanya menerima satu file.


Linux
  1. Encode Konten File Dan Gema Sebagai Satu Baris?

  2. Hubungan Antara Karakter Kontrol, Sinyal Dan Terminal?

  3. Upterm – IDE dan Emulator Terminal dalam Satu Aplikasi

  1. Perintah Head and Tail di Linux Dijelaskan dengan Contoh

  2. [Panduan] perintah apt vs apt-get, dan yang mana yang digunakan?

  3. Bagaimana cara menampilkan nama file yang mengandung dua karakter dan salah satunya adalah c?

  1. Apa itu TAM dan mengapa Anda ingin menjadi TAM?

  2. Grep Dan Ekor -f?

  3. Ubuntu 16.04 Dan Masalah Amdgpu?