Perintah find memberikan output ini:
[root @ localhost /] # find var / log / -iname anaconda. * var / log / anaconda.log var / log / anaconda.xlog var / log / anaconda.yum.log var / log / anaconda.syslog var / log / anaconda.program.log var / log / anaconda.storage.log
Setelah digabungkan dengan tar, ia menampilkan output ini:
[root @ localhost /] # find var / log / -iname anaconda. * -exec tar -cvf file.tar {} \;
var / log / anaconda.log
var / log / anaconda.xlog
var / log / anaconda.yum.log
var / log / anaconda.syslog
var / log / anaconda.program.log
var / log / anaconda.storage.log
Tetapi sementara daftar file tar itu hanya menampilkan satu file
[root @ localhost /] # tar -tvf file.tar -rw ------- root / root 208454 2012-02-27 12:01 var / log / anaconda.storage.log
Apa yang saya lakukan salah di sini?
Dengan xargs saya mendapatkan output ini:
[root @ localhost /] # find var / log / -iname anaconda. * | xargs tar -cvf file1.tar
Pertanyaan kedua
Saat mengetik / di depan var, berarti find /var/logmengapa ini memberikan tar mesaage ini : Menghapus awalan `/ 'dari nama anggota
[root @ localhost /] # find / var / log / -iname anaconda. * -exec tar -cvf file.tar {} \;
tar: Menghapus awalan `/ 'dari nama anggota
/var/log/anaconda.log
tar: Menghapus awalan `/ 'dari nama anggota
/var/log/anaconda.xlog
tar: Menghapus awalan `/ 'dari nama anggota
/var/log/anaconda.yum.log
tar: Menghapus awalan `/ 'dari nama anggota
/var/log/anaconda.syslog
tar: Menghapus awalan `/ 'dari nama anggota
/var/log/anaconda.program.log
tar: Menghapus awalan `/ 'dari nama anggota
/var/log/anaconda.storage.log
Dalam bentuk sederhana apa perbedaan antara dua berikut?
find var/log dan find /var/log
{} +sebagai gantinya {} \;akan mengelompokkan hasil temuan ke dalam satu argumen
findperintah, Anda harus mengutip istilah pencarian. Kadang-kadang berfungsi tanpa tetapi tidak selalu.