GNU/Linux >> Belajar Linux >  >> Linux

Mengapa Find Tidak Menerima '-exec Cp {} Dir +'?

Saya memiliki direktori, dir1 yang berisi banyak file yang namanya diakhiri dengan .jpg atau .png . Saya ingin menyalin semua .png file ke dir2 yang kosong.

Perintah ini berfungsi:

find dir1 -name '*.png' -exec cp {} dir2 ;

tetapi perintah ini tidak:

find dir1 -name '*.png' -exec cp {} dir2 +
find: missing argument to `-exec'

Saya juga mencoba:

find dir1 -name '*.png' -exec cp {} -t dir2 +
find: missing argument to `-exec'

dan:

find dir1 -name '*.png' -exec cp {} dir2 +
find: missing argument to `-exec'

Setelah melihat halaman ini, saya bahkan mencoba:

find dir1 -name '*.png' -exec cp {} dir2 {} +
find: Only one instance of {} is supported with -exec ... +

Halaman ini mengatakan bahwa:

-exec {} + telah ditambahkan di [versi] 4.2.12 pada tahun 2005

Versi find . saya adalah 4.4.2.

Apa yang saya lakukan salah?

Jawaban yang Diterima:

Berkat 'steeldriver', saya menemukan bahwa jawabannya adalah karena spesifikasi POSIX melarang apa pun berada di antara {} dan + setelah -exec .


Linux
  1. Mengapa Penundaan Lama Setelah Perintah Tidak Ditemukan?

  2. Mengapa Rm -rf Dan Bukan Rmdir -rf?

  3. Maxdepth Setara Untuk Temukan Di Aix?

  1. mengapa sftp rmdir tidak berfungsi?

  2. Mengapa kita menggunakan su - dan bukan hanya su?

  3. Mengapa tidak memblokir ICMP?

  1. Mengapa Cd Bukan Program?

  2. Mengapa Tidak 'menemukan' Tampilkan File Ini??

  3. Mengapa find -mtime tidak berfungsi seperti yang diharapkan pada file dengan zona waktu berbeda?