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.