GNU/Linux >> Belajar Linux >  >> Linux

Cara Menyalin File dengan Ekstensi File Tertentu Secara Rekursif

Di Linux, perintah 'cp ‘, standar mana untuk ‘Salin ' digunakan untuk menyalin file dan folder ke folder lain. Ini tersedia secara default di Linux sebagai bagian dari GNU Coreutils seperangkat alat.

Penggunaan paling dasar dari perintah cp adalah untuk menentukan file yang akan disalin sebagai argumen dan untuk menentukan folder target sebagai argumen terakhir.

$ cp file1 file2 file3... fileN target_folder/

Menyalin File dengan Ekstensi File Tertentu

Anda bahkan dapat menyalin file dengan ekstensi file yang sama (Misalnya .txt , .jpg , .mp4 ) bersama-sama menggunakan karakter wildcard, seperti yang ditunjukkan di bawah ini:

$ cp *.jpg *.mp4 *.mp3 media/

Ini akan menyalin semua JPEG gambar, MP3, dan MP4 file multimedia ke folder ‘media '. Perhatikan bahwa ini hanya dapat digunakan untuk file. Jika Anda mencoba menyalin folder dalam format di atas, akan muncul peringatan bahwa folder tersebut ‘Tidak kosong ‘.

Untuk menyalin folder, kita harus menentukan '-r' (rekursif ) bendera. Rekursif artinya semua file di folder itu, file di subfolder, dan seterusnya, semuanya akan disalin.

$ cp -r folder1/ folder2/ file1 file2 target_folder/

Namun, tidak ada cara dalam 'cp' untuk menyalin file dari ekstensi tertentu secara rekursif. Kapanpun '-r' ditentukan, program selalu mempertimbangkan semua file dalam subfolder untuk disalin.

Menemukan dan Menyalin File dengan Ekstensi File

Untuk mencapai ini, kami menggunakan perintah find, yang hanya digunakan untuk mencari file dan folder di Linux berdasarkan parameter file atau folder:nama file, ekstensi, ukuran, dll.

Kami akan menggunakan perintah temukan untuk mencari file secara rekursif dengan ekstensi file tertentu dan kemudian meneruskan output ini ke cp perintah untuk menyalinnya.

Sintaks untuk mencari file dengan ekstensi tertentu menggunakan perintah find adalah:

$ find <folder_to_search> -name ‘*.<extension>

Misalnya, untuk menemukan semua file JPG secara rekursif di folder saat ini:

$ find . -name '*.jpg'

Terakhir, kita harus menyalurkan output ini ke perintah cp . Untuk melakukan ini, kami menggunakan 'xargs' perintah untuk membuat 'cp' pertimbangkan output dari 'temukan' sebagai argumennya. Juga, kami menggunakan '-t' bendera cp , untuk menentukan direktori target, yang tanpanya program akan menganggap output dari 'find' sebagai direktori target.

$ find . -name '*.jpg' | xargs cp -t Pictures2/

Jadi, semua file berekstensi '.jpg' telah disalin ke folder 'Pictures2' .

Kesimpulan

Pada artikel ini, kami belajar cara menyalin file dengan ekstensi tertentu secara rekursif di Linux. Perhatikan bahwa metode ini berguna jika Anda berurusan dengan jumlah file yang lebih sedikit. Untuk sejumlah besar file (misalnya, dalam puluhan ribu), Anda perlu menggunakan pendekatan berbeda untuk menyalin file secara rekursif.

Jika Anda memiliki pertanyaan atau masukan, beri tahu kami di komentar di bawah.


Linux
  1. Bagaimana Cara Menggunakan Inotifywait Untuk Menonton Direktori Untuk Pembuatan File Ekstensi Tertentu?

  2. Cara Menghapus File dengan Ekstensi Tertentu di Baris Perintah Linux

  3. Cara Menemukan Semua File dengan Ukuran File Nol (0) Bytes di Direktori Secara Rekursif

  1. Cara menyalin direktori secara rekursif menggunakan rsync sambil mengecualikan file tertentu

  2. Bagaimana cara menyalin folder dengan file ke folder lain di Unix/Linux?

  3. Secara rekursif menemukan file dengan ekstensi tertentu

  1. Bagaimana cara menyalin file bernama dimulai dengan titik?

  2. Bagaimana saya bisa menyalin file secara rekursif dengan ekstensi file, mempertahankan struktur direktori?

  3. Bagaimana cara menyalin file secara transaksional?