Pertanyaan Bagaimana saya bisa menyalin isi folder ke folder lain di direktori berbeda menggunakan terminal?


Saya mencoba menyalin isi folder ke folder lain di direktori berbeda menggunakan terminal.

Apakah seseorang dapat memberikan saya contoh sintaks perintah yang diperlukan untuk mencapai ini?


529
2017-12-11 01:19


asal


cyberciti.biz/faq/copy-folder-linux-command-line memiliki informasi yang lebih jelas. - Dilip Rajkumar


Jawaban:


Anda dapat menyalin isi folder /source ke folder lain yang ada /dest dengan perintah

cp -a /source/. /dest/

Itu -a option adalah opsi rekursif yang ditingkatkan, yang melestarikan semua atribut file, dan juga mempertahankan symlink.

Itu . di akhir jalur sumber adalah spesifik cp sintaks yang memungkinkan untuk menyalin semua file dan folder, termasuk yang tersembunyi.


799
2017-12-11 12:01



Jawaban yang bagus. Saya akan menulis contoh nyata jika seseorang mengalami masalah dengan perintah ini: sudo cp -a / var / www / opencart /. / var / www / opencart_local / - pablofiumara
@enzotib Saya mencoba menggunakan perintah ini untuk menyalin konten "Unduhan / teks teks" ke "~ / .config / inkscape / extensions /." Dengan menggunakan perintah Anda, saya ketikkan "cp -a / Downloads / textext /. /~/.config/inkscape/extensions/." tetapi ini tidak berhasil - Funzies
@Funzies: mungkin perintah Anda seharusnya: cp -a ~/Downloads/textext/. ~/.config/inkscape/extensions/ - enzotib
Menambahkan -p bendera untuk mempertahankan hak akses file dan cap waktu. cp -ap /var/www/original.com/images/. /var/www/new.com/images/ - Dylan Valade
@DylanValade: -a sudah tersirat --preserve=all, itu lebih luas dari -p = --preserve=mode,ownership,timestamps. - enzotib


Alternatif lainnya adalah rsync

rsync -r source/ destination

Kelebihan rsync adalah:

  1. Setelah sinkronisasi awal, ia akan menyalin hanya file yang telah diubah.

  2. Anda dapat menggunakannya melalui jaringan, nyaman untuk file di $ HOME, terutama file konfigurasi.


97
2017-12-11 03:59



Saya pikir Anda tidak perlu tanda bintang. rsync -r source/ destination seharusnya cukup, bukan? - Joschua
Yang ini lebih tepat: 'rsync -rtvp source / * destination' - shridutt kothari
-r tidak berfungsi untuk file / folder tersembunyi - Nam G VU
Ini tidak akan menyalin file yang tersembunyi, karena bash mengembang * hanya untuk file yang tidak tersembunyi. Solusinya oleh @Joschua lebih aman. - sauerburger
rsync akan menyalin seluruh direktori, termasuk file tersembunyi, jika Anda menggunakan trailing / tanpa * jadi rync source/ dest Tentunya orang perlu menyesuaikan perintah rsync agar berfungsi sesuai keinginan. - Panther


Katakanlah Anda memiliki folder bernama folder1 di dalam kamu ~, dalam folder1 adalah 1 file yang disebut file1 dan 2 folder disebut sub1 dan sub2 masing-masing dengan file dan folder lain di dalamnya.

Untuk menyalin semua konten ~/folder1 untuk ~/new_folder1 Anda akan menggunakan

cp -r ~/folder1/. ~/new_folder1

new_folder1 kemudian akan berisi semua file dan folder dari folder1.

cp adalah perintah untuk menyalin menggunakan terminal, -r membuatnya secara rekursif (jadi, direktori saat ini + direktori lebih lanjut di dalam saat ini) ~/folder1 adalah folder asal, ~/new_folder1 adalah folder tujuan untuk file / folder di dalam asal.


56
2017-12-11 01:23



itu tidak menangkap file yang tersembunyi - Portablejim
Terima kasih, Bruno! Ini membantu saya memahami sintaks, meskipun saya harus mengubahnya sedikit (menghapus tanda ~). Mungkin karena folder tujuan berada di / opt, yang berada di sistem file lain. Dan terima kasih, Portablejim untuk mengingat file tersembunyi itu! - pandisvezia
Periode trailing penting. Tanpa itu, kadang-kadang dapat membuat subdirektori baru ~/new_folder1/folder1 bukannya menyalin isinya. - wisbucky
Kenapa tidak cp -r ~/folder1/* ~/new_folder1 - Alex78191
@ Alex78191 [root@ home]# mkdir food [root@ home]# cd food/ [root@ food]# mkdir .fruit [root@ food]# mkdir veggies [root@ food]# touch veggies/carrots [root@ food]# touch .fruit/apple [root@ food]# ls * carrots [root@ food]# - Bruno Pereira


Periksa ini http://www.cyberciti.biz/faq/copy-folder-linux-command-line/ untuk informasi lebih lanjut tentang menyalin folder. Semoga ini membantu.

cp Command

cp adalah perintah Linux untuk menyalin file dan direktori. Sintaksnya adalah sebagai berikut:

cp source destination
cp dir1 dir2
cp -option  source destination
cp -option1 -option2  source destination

Dalam contoh salinan ini /home/vivek/letters folder dan semua file-nya ke /usb/backup direktori:

cp -avr /home/vivek/letters /usb/backup

Dimana,

-a : Pertahankan atribut yang ditentukan seperti direktori mode file, kepemilikan, cap waktu, jika mungkin atribut tambahan: konteks, tautan, xattr, semua.

-v : Jelaskan apa yang sedang dilakukan.

-r : Salin direktori secara rekursif. Contoh

Salin folder bernama / tmp / conf to / tmp / backup:

$ cp -avr /tmp/conf/ /tmp/backup

13
2017-11-25 05:53



Ini bukan pertanyaan yang ditanyakan. - cybermonkey
(Menggunakan -r dengan -a redundan; pada gnu cp -a sama dengan "-dr --preserve = all") - cristoper


Jika ada dua folder: (dengan izin menulis)

drwxr-xr-x 4 vimal vimal  4096 Sep  9 12:17 .
drwxr-xr-x 3 root  root   4096 Aug 18 14:35 ..
drwxrwxrwx 6 vimal vimal  4096 Sep  9 12:15 DATA
drwxrwxrwx 7 vimal vimal  4096 Sep  9 12:15 PORTAL

Jika Anda berada di dalam folder yang disebut PORTAL di mana Anda ingin menyalin semua konten dari folder lain, katakanlah DATA pada tingkat yang sama maka Anda akan melakukannya

vimal@vimal-D3H:/var/www/html/PORTAL$ cp -a ../DATA/. .

Anda harus memperhatikan 2 titik. Titik terakhir mengatakan salin di sini di folder ini

dan

satu berikut / DATA /. mengatakan bahwa semua ISI di dalam folder DATA yang akan disalin, dan bukan folder DATA itu sendiri.

Jika Anda menghapus trailing ini "." dari / DATA /

kemudian seluruh folder DATA akan disalin di dalam PORTAL (dari tempat Anda mengatasinya).


2
2017-09-09 10:39