Cara Menyalin Direktori dan Kandungannya dalam Linux

Gunakan arahan 'cp' untuk menyalin dan menampal keseluruhan direktori dari satu tempat ke tempat lain

Tidak kira Sistem Pengendalian yang anda jalankan, menyalin satu fail atau folder dari satu lokasi ke lokasi lain adalah tugas paling asas yang anda lakukan setiap hari. Pada hari yang sibuk di tempat kerja, semasa tugasan projek di sekolah, atau semasa pembangunan projek yang sedang berjalan, menyalin fail dari lokasi A ke lokasi B tidak dapat dielakkan.

Penyalinan fail atau folder biasanya dilakukan menggunakan GUI. Linux menjaga tabiat anda untuk bekerja pada terminal dengan menyediakan utiliti baris arahan yang membolehkan anda menyalin fail atau folder dari satu lokasi ke lokasi lain. Menggunakan cp arahan dengan pelbagai pilihan memberi anda kebebasan untuk menyalin fail dan folder dalam pelbagai cara.

Biar saya membimbing anda melalui artikel ini di mana anda akan belajar tentang cp arahan dan cara untuk menyalin direktori bersama kandungannya.

Pilihan tersedia dengan cp perintah

Ini adalah pilihan yang paling biasa digunakan dengan cp arahan dalam konteks menyalin direktori dan semua kandungannya.

PilihanPenerangan
-vmod verbose (menunjukkan kemajuan)
-r/Rsalin direktori secara rekursif
-njangan tulis ganti fail atau folder sedia ada
-isegera sebelum menulis ganti

Salin direktori dari satu lokasi ke lokasi lain

Mari kita mulakan dengan penggunaan paling asas cp perintah. Kami akan menggunakan arahan ini dengan pilihan -r.

Menggunakan -r pilihan memastikan bahawa subfolder dan fail di dalam direktori yang anda salin, juga akan disalin.

Sintaks:

cp -r [lokasi_sumber] [lokasi_sasaran]

Contoh:

Saya mempunyai dua direktori dalam direktori kerja semasa saya yang dipanggil 'projek' dan 'ruang kerja'.

Dalam contoh ini, saya akan menggunakan cp -r arahan untuk menyalin 'projek' direktori bersama semua kandungannya ke lokasi baharu iaitu '/home/gaurav/workspace'. Ini bermakna saya sedang menyalin direktori bernama 'projek' ke direktori bernama 'ruang kerja'.

Ini adalah kandungan 'projek' direktori. Menggunakan ls arahan untuk memaparkan kandungannya.

gaurav@ubuntu:~/project$ ls -al total 288 drwxr-xr-x 6 gaurav gaurav 4096 Sep 17 18:26 . drwxr-xr-x 88 gaurav gaurav 266240 Sep 17 18:24 .. drwxr-xr-x 2 gaurav gaurav 4096 Sep 17 18:25 dem1, drwxr-xr-x 2 gaurav gaurav 4096: drwxr-xr-x 4096: drwxr-xr-x -x 2 gaurav gaurav 4096 Sep 17 18:25 dem3 drwxr-xr-x 2 gaurav gaurav 4096 Sep 17 18:25 dem4 -rw-r--r-- 1 gaurav gaurav 24 Sep 17 18:26 temp@. ubuntu:~/project$

Sekarang, menggunakan cp -r arahan kita boleh menyalin 'projek' direktori ke mana-mana lokasi yang dikehendaki.

gaurav@ubuntu:~$ cp -r /home/gaurav/project /home/gaurav/workspace gaurav@ubuntu:~$

Pengeluaran:

gaurav@ubuntu:~/workspace$ ls -al total 408 drwxrwxr-x 4 gaurav gaurav 4096 Sep 17 18:27 . drwxr-xr-x 88 gaurav gaurav 266240 Sep 17 18:24 .. drwxrwxr-x 3 gaurav gaurav 4096 Mar 22 2018 .metadata drwxr-xr-x 6 gaurav gaurav 4096 Sep-17 projek - 17 Sep- -- 1 gaurav gaurav 1535 Sep 16 17:13 source.c gaurav@ubuntu:~/workspace$ 

Dalam output di atas, kita dapat melihat bahawa 'projek' direktori disalin dari lokasi asal ke lokasi baharu ini '/home/gaurav/workspace'. Sekarang, mari kita buka 'projek' direktori dan semak sama ada semua kandungan di dalamnya turut disalin.

gaurav@ubuntu:~$ cd ./workspace/project gaurav@ubuntu:~/workspace/project$

Nota: saya dah guna ./ di sini dan bukannya memasuki laluan lengkap. Ini bermakna ia adalah laluan direktori rumah saya dan ruang kerja terletak di rumah saya atau direktori kerja semasa. Untuk penjelasan lanjut tentang perkara ini, anda boleh menyemak artikel ini.

Pengeluaran:

gaurav@ubuntu:~/workspace/project$ ls -al total 28 drwxr-xr-x 6 gaurav gaurav 4096 Sep 17 18:27 . drwxrwxr-x 4 gaurav gaurav 4096 Sep 17 18:27 .. drwxr-xr-x 2 gaurav gaurav 4096 Sep 17 18:27 dem1, drwxr-xr-x 2 gaurav gaurav 4096 Sep: 27x-dem18 Sep: 27x-dem18 2 gaurav gaurav 4096 Sep 17 18:27 dem3 drwxr-xr-x 2 gaurav gaurav 4096 Sep 17 18:27 dem4 -rw-r--r-- 1 gaurav gaurav 24 Sep 17 18:27 temp.c: gaurav@ubuntu ~/ruang kerja/projek$ 

Daripada output ini, kita boleh membuat kesimpulan bahawa semua kandungan 'projek' direktori juga dipindahkan ke lokasi baharu.

Menyalin berbilang direktori dari satu lokasi ke lokasi lain

Untuk menyalin berbilang direktori, cp arahan boleh digunakan dengan cara yang sama seperti yang dinyatakan di atas. Satu-satunya perubahan di sini ialah anda perlu memasukkan berbilang laluan sumber bagi berbilang direktori untuk disalin.

Sintaks:

cp -r [source_path_1] [source_path_n] [destination_path]

Mari kita semak arahan ini dengan contoh.

Contoh:

gaurav@ubuntu:~/workspace$ cp -r ./snap ./project /home/gaurav/tomcat

Di sini, saya telah menyalin dua direktori 'snap' dan 'projek' daripada direktori kerja semasa saya ke lokasi baharu '/home/gaurav/tomcat'.

Sekarang mari kita semak sama ada direktori disalin dengan kandungannya ke lokasi baharu.

gaurav@ubuntu:~/tomcat$ ls -al jumlah 9316 drwxrwxr-x 5 gaurav gaurav 4096 Sep 19 12:16 . drwxr-xr-x 88 gaurav gaurav 266240 Sep 19 12:15 .. drwxr-xr-x 6 gaurav gaurav 4096 Sep 19 12:16 projek drwxr-xr-x 7 gaurav gaurav 4012 Sep 19: 19 snap

Menyemak sama ada kandungan direktori ini turut disalin.

gaurav@ubuntu:~/tomcat/snap$ ls couchdb eclipse htop pycharm-community vim-editor gaurav@ubuntu:~/tomcat/snap$ 
gaurav@ubuntu:~/tomcat/project$ ls dem1, dem2 dem3 dem4 temp.c gaurav@ubuntu:~/tomcat/project$

menggunakan cp arahan dengan mod verbose

Menggunakan cp arahan dengan pilihan -v membolehkan mod verbose. Ciri ini memaparkan fail pada terminal yang sedang disalin. Nama Fail atau Folder yang sedang disalin akan dipaparkan pada terminal anda.

Sintaks:

cp -vr [direktori_sumber] [laluan_lokasi_sasaran]

Contoh:

gaurav@ubuntu:~$ cp -vr ./workspace/apache ./space

Dalam contoh ini, direktori 'apache' disalin ke 'ruang' folder baharu. Saya telah menggunakan -v pilihan dengan -r, supaya semua kandungan direktori apache juga dapat disalin.

Pengeluaran:

'./workspace/apache' -> './space/apache' './workspace/apache/apache-tomcat-8.0.52.tar.gz' -> './space/apache/apache-tomcat-8.0. 52.tar.gz' gaurav@ubuntu:~$

Output memaparkan direktori yang sedang disalin. Proses yang sama boleh dilakukan sekiranya menyalin berbilang fail.

Elakkan menulis ganti semasa menggunakan cp perintah

Kadang-kadang semasa menggunakan cp perintah untuk menyalin berbilang fail atau folder, anda mungkin akan menimpa fail yang telah disalin ke lokasi baharu. Untuk mengelakkan ini adalah dinasihatkan untuk menggunakan -i pilihan dengan cp perintah. Ini akan meminta anda sebelum menulis ganti mana-mana fail atau folder.

Sintaks:

cp -ri [source_directory_path] [target_location_path]

Nota: Di sini, dalam sintaks yang saya gunakan -r pilihan juga. Ini akan menyalin kandungan direktori juga. Ia juga akan menyemak sama ada mana-mana subfolder dan fail di dalam direktori ini sedang ditimpa.

Contoh:

gaurav@ubuntu:~$ cp -ri ./workspace/snap ./tomcat cp: tulis ganti './tomcat/snap/pycharm-community/current'?

Di sini, saya cuba menyalin direktori bernama 'snap' ke lokasi baharu. Tetapi nama direktori 'snap' sudah wujud di lokasi baharu. Oleh itu, saya akan digesa oleh terminal sebelum menulis ganti direktori snap sedia ada.

Anda boleh menaip 'ya'atau'Tidak' sebagai tindak balas kepada gesaan ini.

Dalam kes, jika anda tidak menggunakan -i pilihan, direktori sedia ada akan ditimpa oleh direktori baharu.

Langkau menulis ganti fail dan direktori dengan cp perintah

Kita boleh menggunakan -n pilihan untuk terus mengarahkan terminal untuk tidak menulis ganti dan hanya melangkau fail dan direktori yang serupa semasa menggunakan cp perintah.

Sintaks:

cp -nr [source_directory_path] [target_location_path]

Menggunakan arahan ini, anda boleh memastikan bahawa fail dan folder anda tidak akan ditimpa.

Contoh:

gaurav@ubuntu:~$ cp -ri ./workspace/snap ./tomcat gaurav@ubuntu:~$

Di sini, direktori 'snap' sudah wujud di lokasi sasaran. Oleh itu, menggunakan -n pilihan akan memastikan tidak menimpa direktori ini.

Tidak seperti -i pilihan, di sini anda tidak akan digesa tentang menulis ganti.

Kesimpulan

Menggunakan cp arahan untuk menyalin direktori dan kandungannya dalam Linux adalah proses yang mudah. Untuk mengetahui lebih lanjut tentang cp arahan dengan pilihan lain yang tersedia, anda boleh menyemak halaman manual dengan menaip lelaki cp dalam terminal Linux anda.