Ubuntu copy command. Paano kopyahin ang mga file gamit ang cp command sa Linux. maghanap ng mga command at wildcard na character para sa mga filename

Ang pagkopya ng mga file ay isa sa mga gawaing kadalasang kinakaharap ng mga user personal na computer. Siyempre, maaari mong buksan ang file manager, ipasok ang gustong folder at kopyahin ang file gamit ang menu ng konteksto- walang dapat pag-usapan. Ngunit sa artikulong ito nais kong tingnan ang pagkopya ng mga file sa Linux gamit ang terminal.

Hindi palaging may access sa tagapamahala ng file: dahil sa iba't ibang pagkasira graphical na shell sa computer sa bahay maaaring hindi available, at ang console interface lang ang ginagamit sa mga server. Bilang karagdagan, ang pagkopya Ubuntu file sa pamamagitan ng terminal ay mas mahusay, at makikita mo mismo. Ngayon ay titingnan natin ang higit pa sa regular na pagkopya gamit ang utos cp Linux, ngunit hindi rin karaniwan: gamit alkitran At hanapin.

Pangalan ng utility cp ay isang abbreviation para sa Kopyahin, na nangangahulugang kopyahin. Pinapayagan ka ng utility na ganap na kopyahin ang mga file at direktoryo.

Syntax at mga pagpipilian

Pangkalahatang syntax cp ganito ang hitsura:

$ cp options source file destination file

$cp options source file direktoryo ng patutunguhan/

Pagkatapos isagawa ang command, ang source file ay ganap na ililipat sa destination file. Kung ang isang slash ay tinukoy sa dulo, ang file ay isusulat sa tinukoy na direktoryo na may orihinal na pangalan.

Ang utility ay may ilang mga kagiliw-giliw na pagpipilian na maaaring makatulong nang malaki sa mga hindi karaniwang gawain sa pagkopya, kaya tingnan natin ang mga ito:

  • --mga katangian-lamang- huwag kopyahin ang mga nilalaman ng file, ngunit ang pag-access at mga flag ng may-ari lamang;
  • -f, --puwersa- muling isulat umiiral na mga file;
  • -i, --interactive- magtanong kung ang mga umiiral na file ay kailangang ma-overwrite;
  • -L- hindi kopyahin ang mga simbolikong link, ngunit kung ano ang itinuturo nila;
  • -n- huwag i-overwrite ang mga umiiral nang file;
  • -P- wag kang sumunod simbolikong mga link;
  • -r- kopya Linux folder recursively;
  • -s- huwag kopyahin ang mga file sa Linux, ngunit lumikha ng mga simbolikong link;
  • -u- kopyahin lamang ang file kung ito ay nabago;
  • -x- huwag lumampas sa mga hangganan ng file system na ito;
  • -p- i-save ang may-ari, mga timestamp at access sa mga flag kapag kinokopya;
  • -t- isaalang-alang ang patutunguhang file bilang isang direktoryo at kopyahin ang pinagmulang file sa direktoryong ito.

Mga halimbawa ng pagkopya ng mga file sa Linux

Ngayong alam mo na ang mga pangunahing opsyon, maaari kang magpatuloy sa pagsasanay. Halimbawa, gusto naming kopyahin ang isang partikular na larawan mula sa folder ng bahay sa subdirectory ng mga larawan:

cp ~/pic.png ~/pictures/

O maaari naming tahasang tukuyin ang pangalan ng bagong larawan:

cp ~/pic.png ~/pictures/wallpaper.png

Ang mga folder ay kinokopya gamit ang isang susi -r:

cp -R ~/folder ~/Documents/

Pagkatapos patakbuhin ang copy command na ito, ang ~/folder ay makokopya sa ~/Documents folder. Ang pangunahing bagay ay huwag kalimutang maglagay ng slash sa dulo ng expression o gamitin ang opsyon -t. Kung hindi, ang ~/documents folder ay ma-overwrite.

Default na utos cp Ino-overwrite ng Linux ang mga kasalukuyang file o folder, ngunit maaari mong itanong sa utility kung gusto mong i-overwrite ang bawat file kung hindi ka sigurado tungkol sa command:

cp -i ~/test ~/Documents/test

Mayroon ding kabaligtaran na opsyon -n, ibig sabihin ay "huwag i-overwrite ang mga kasalukuyang file."

Pagpipilian -u kapaki-pakinabang sa susunod na kaso: alam mo o pinaghihinalaan mo na mayroong lumang bersyon ng file sa direktoryo kung saan kinokopya ang file, pagkatapos ay papalitan ito ng -u operator ng bagong bersyon:

cp -u ~/test ~/Documents/test

Cp sumusuporta din mga espesyal na karakter mga kapalit * At ? . Halimbawa, kokopyahin ng sumusunod na command ang lahat ng mga file simula sa pagsubok:

cp ~/test* ~/Documents/

Kung kailangan mong gumamit ng mas kumplikadong mga regular na expression, kakailanganin mong pagsamahin ang utility cp Sa hanapin o egrep.

cp -p ~/test* ~/Documents/

Upang gawing mas madaling gamitin ang command, maaari mong gamitin ang syntax kulot na braces. Halimbawa, upang i-back up ang isang file, patakbuhin ang:

$ cp test.conf(,.bak)

Isang file na may parehong pangalan at extension ay gagawin.bak

Default sa cp ay hindi ipinapakita, na kung saan ay lubhang hindi maginhawa kapag nagtatrabaho sa malalaking file, ngunit madali mo itong makikita gamit ang utility cv.

Pagkopya ng mga file gamit ang mga regular na expression sa Linux

Sa utility hanapin maaaring gamitin iba't ibang kondisyon at mga regular na expression para sa paghahanap ng mga file. Nagsulat na ako ng kaunti tungkol sa kanya sa artikulo. Maaari naming kopyahin ang lahat ng nahanap gamit hanapin file sa pamamagitan ng pagtawag sa command para sa bawat isa sa kanila cp. Halimbawa, kinokopya namin ang lahat ng mga file sa kasalukuyang direktoryo na naglalaman lamang ng mga numero sa pangalan:

hanapin ang . -name -exec cp() ~/Documents\

Dito ipinapahiwatig ng tuldok ang kasalukuyang direktoryo, at ang parameter pangalan tumutukoy sa isang regular na expression. Parameter exec tinutukoy namin kung anong utos ang dapat isagawa sa mga nakitang file. Simbolo {} - pinapalitan ang pangalan ng bawat file.

Pero hindi hanapin"Kami lang ang makakagawa nito. Ang parehong ay maaaring makuha sa pamamagitan ng paghiling ng isang listahan ng mga file ng direktoryo sa ls, sinasala ito sa pamamagitan ng regular na pagpapahayag egrep at ipasa ang mga pangalan ng file isa-isa sa cp sa pamamagitan ng paggamit xargs:

ls -1 ~/ | egrep "" | xargs cp -t ~/Folder/

Hindi naman talaga maginhawang paraan kopyahin ang mga file ng Linux, ngunit posible pa rin. Lahat ng mga file mula sa direktoryo ng tahanan naglalaman lamang ng mga letrang Ingles sa pangalan.

Pagkopya ng mga nilalaman ng file sa Linux

Hindi mo lamang makokopya ang mga file sa kanilang sarili, ngunit pamahalaan din ang kanilang mga nilalaman. Halimbawa, idikit ang ilang file sa isa o gupitin ang isang file sa ilang bahagi. Utility pusa ginagamit upang i-output ang mga nilalaman ng isang file, kasama ng mga operator ng pag-redirect ng output ng Bash maaari mong kopyahin ang mga nilalaman Linux file sa isa pang file. Halimbawa:

cat file1 > file2

Kung ang file ay walang laman, ito ay mapapatungan. O maaari nating pagsamahin ang dalawang magkahiwalay na file sa isa:

cat file1 file2 > file3

Espesyal na pagkopya ng file sa Linux gamit ang tar

Ang Linux ay kawili-wili dahil pinapayagan ka nitong gawin ang parehong aksyon sa iba't ibang paraan. Ang pagkopya sa Linux ay maaari ding gawin hindi lamang gamit cp. Kapag naglilipat mga file ng system sa isa pang direktoryo, pag-back up ng mga file ng system, atbp. Mahalaga na ang mga katangian, mga halaga ng may-ari ng file at mga simbolikong link ay napanatili dahil ang mga ito ay walang anumang pagbabago.

Utility cp makayanan din ba ang gawaing ito? kung tinukoy mo ang pagpipilian -p, ngunit maaari mong gamitin ang utility sa pag-archive alkitran. Hindi kami gagawa ng anumang archive file, ngunit gagawa kami ng tunnel. Ang unang bahagi ng command ay nag-package ng file at ipinapadala ito sa karaniwang output, at agad itong i-unpack ng isa pa sa nais na folder:

tar cf - /var | (cd /mnt/var && tar xvf -)

Dito namin ganap na kinokopya ang mga nilalaman ng /var folder sa /mnt/var folder. Sa ganitong paraan maaari mong kopyahin ang folder ng Linux, ganap na anuman o maging ang buong operating system.

Mga konklusyon

Ngayon alam mo na kung paano kopyahin ang mga file sa Ubuntu at Linux sa pangkalahatan. Tulad ng nakikita mo, ito ay ginagawa nang mas mabilis at mas mahusay sa terminal kaysa sa paggamit GUI kung naaalala mo kinakailangang mga utos. Kung mayroon kang anumang mga katanungan, magtanong sa mga komento!

cp - kopyahin ang mga file at direktoryo

REVIEW

cp [ mga pagpipilian] file landas cp [ mga pagpipilian] file... katalogo Mga opsyon sa POSIX: [-fiprR] [--] Mga karagdagang opsyon POSIX 1003.1-2003: [-HLP] GNU file-utils 4.0 na mga opsyon (maikling anyo): [-abdfilprsuvxPR] [-S SUFFIX] [-V (numero, umiiral, simple)] [--backup=KONTROL] [--kaunti=KAILAN] [--tulong] [--bersyon] [--] Dagdag Mga pagpipilian sa GNU file-utils 4.1 (maikling anyo): [-HLP] [--copy-contents] [--no-preserve] [--reply=PAANO] [--remove-destination] [--strip-trailing-slashes] [--target-directory=DIR]

PAGLALARAWAN

cp kinokopya ang mga file (o, kung tatanungin, mga direktoryo). Maaari mong kopyahin ang isang file sa isa pa, ibinigay na file, o kumopya ng maraming file hangga't gusto mo sa isang ibinigay na direktoryo. cp Kung ang huling argumento ay isang umiiral na direktoryo kung gayon file kopyahin ang bawat orihinal cp sa direktoryong ito (pinapanatili ang mga pangalan). Kung hindi, kung dalawang file lamang ang ibinigay, kung gayon kinokopya ang unang file sa pangalawa. Kung higit sa dalawang argumento ang ibinigay na hindi mga opsyon, at ang huling argumento ay hindi ang pangalan ng anumang direktoryo, magreresulta ito sa isang error.(Kaya kung ang /a~-- ay isang direktoryo, kokopyahin ng cp -r /a /b ang /a sa /b/a at /a/x sa /b/a/x kung sakaling mayroon nang /b, ngunit ang parehong utos ay kokopyahin ang /a sa /b at /a/x sa /b/x kung ang /b ay hindi umiiral, o mabibigo kung ang /b ay isang regular na file). Ang mga karapatan sa pag-access sa mga file at direktoryo ay magiging katumbas ng mga nasa orihinal na mga file, lohikal na pinarami (AT) sa 0777 (sa madaling salita, ang mga sticky, setuid at setgid bit ay ire-reset sa mga bagong karapatan - Ed.), at kukuha din isinasaalang-alang umask cp(1) user (maliban kung ang -p na opsyon ay tinukoy). (Ngunit sa panahon ng isang recursive na kopya ng mga direktoryo, ang mga bagong likhang direktoryo ay pansamantalang bibigyan ng mga karapatan OR na may halagang S_IRWXU (0700) upang payagan ang pagbabasa, pagsulat at paghahanap ng mga bagong likhang direktoryo.)

Kung susubukan mong kopyahin ang isang file sa sarili nito, walang mangyayari (maliban sa posibleng mensahe ng error). Kapag ang isang file ay kinopya sa isa pang umiiral na file, ito ay bubuksan gamit ang open(path, O_WRONLY | O_TRUNC) na tawag. Kapag natupad muli ang pagkopya nilikhang file

, pagkatapos ito ay nilikha gamit ang open(path, O_WRONLY | O_CREAT, mode) na tawag. Kung nabigo ang mga tawag na ito, ang file ay ipinapalagay na umiiral, at sa sinubukang tanggalin ito (i-unlink), dapat mong tukuyin ang -f na opsyon. Kung matagumpay ang pagtanggal, pagkatapos ay gumagana ang lahat para sa kaso na may bagong file. MGA OPSYON POSIX Ang POSIX ay may apat at kalahating opsyon: -f Kung kinakailangan, tatanggalin ang mga umiiral nang file na kinokopya. (Tingnan sa itaas) -p-i Nagtatanong kung dapat bang ma-overwrite ang mga kasalukuyang file na kinokopya. (Ang kahilingan ay ibinibigay sa karaniwang output ng error, at ang tugon ay binasa mula sa karaniwang input . Ang pagkopya ay isinasagawa lamang kung ang sagot ay positibo). sa file. Kung sakaling magresulta sa error ang pagtatakda sa may-ari o grupo, ang suid at sgid bits ay iki-clear. (Tandaan na sa ibang pagkakataon ang orihinal na file at ang kopya nito ay maaaring may magkaibang panahon huling pag-access, dahil ang operasyon ng pagkopya ay isang pag-access sa source file). -R Kopyahin ang mga direktoryo nang paulit-ulit; wastong pangasiwaan ang mga sitwasyon kung saan nakatagpo ang mga bagay na hindi ordinaryong file o direktoryo. (Kaya, ang isang kopya ng isang FIFO o espesyal na file ay magiging isang FIFO o espesyal na file). -r Kopyahin ang mga direktoryo nang paulit-ulit; magsagawa ng ilang mga aksyon na hindi tinukoy ng pamantayan kapag ang mga bagay na hindi ordinaryong mga file o direktoryo ay nakatagpo. (Kaya, pinapayagan, at sa katunayan ay naaprubahan, ang presensya-r mga pagpipilian cp bilang kasingkahulugan ng -R. -- Gayunpaman, ang hangal na pag-uugali na ipinapakita ng bersyon

hindi ipinagbabawal sa GNU 4.0.) Kung susubukan mong kopyahin ang isang file sa sarili nito, walang mangyayari (maliban sa posibleng mensahe ng error). Kapag ang isang file ay kinopya sa isa pang umiiral na file, ito ay bubuksan gamit ang open(path, O_WRONLY | O_TRUNC) na tawag. Kapag natupad muli ang pagkopya nilikhang file 2003

Kinukumpleto ang listahan ng mga opsyon. DAGDAG Ang pamantayang POSIX 1003.1-2003 ay nagdaragdag ng tatlong opsyon na tumutukoy kung paano pamahalaan ang mga simbolikong link. Kapag ang isang di-recursive na kopya ay ginanap, ang mga simbolikong link ay binabalewala (ang mga bagay na kanilang itinuturo ay kinuha sa halip na ang link mismo - humigit-kumulang). Kapag nagsasagawa ng recursive copy gamit ang -r na opsyon, ang mga resulta ay nakadepende sa pagpapatupad. Kapag nagsasagawa ng recursive copy gamit ang -R na opsyon: -L-H -P Mga dereference na simbolikong link na tinukoy sa listahan ng parameter. Hindi binabalewala ang mga simbolikong link na nakatagpo sa panahon ng recursive na pagkopya, ngunit kinokopya lamang ang mga ito.

Tinatanggal sa sanggunian ang lahat ng simbolikong link, parehong tinukoy sa listahan ng parameter at ang mga naranasan sa panahon ng recursive na pagkopya. Hindi binabalewala ang anumang mga simbolikong link, alinman sa tinukoy sa listahan ng parameter o nakatagpo sa panahon ng recursive na pagkopya. Kopyahin lamang ang mga ito bilang simbolikong mga link. Walang default na opsyon - dapat mong tukuyin ang isa sa mga opsyon upang makamit ang ninanais na resulta.

MGA DETALYE MGA BERSYON GNU -r). cp Karaniwan, ang mga file ay isinulat nang eksakto sa parehong anyo na binasa. Tingnan sa ibaba para sa opsyon --kaunti , na isang exception. Bilang default, hindi kinokopya ng cp ang mga direktoryo (tingnan ang opsyon karaniwang tinatanggihan ang pagkopya ng isang file sa sarili nito, kasama ang sumusunod na pagbubukod: kung ang mga pagpipilian ay ibinigay file At file--puwersa cp ay gagawa ng backup na kopya ng file: regular o numbered, gaya ng sinasabi mo. Ito ay kapaki-pakinabang kapag gusto mo lang gumawa ng backup na kopya ng isang umiiral na file bago ito baguhin.

Kung susubukan mong kopyahin ang isang file sa sarili nito, walang mangyayari (maliban sa posibleng mensahe ng error). Kapag ang isang file ay kinopya sa isa pang umiiral na file, ito ay bubuksan gamit ang open(path, O_WRONLY | O_TRUNC) na tawag. Kapag natupad muli ang pagkopya Walang default na opsyon - dapat mong tukuyin ang isa sa mga opsyon upang makamit ang ninanais na resulta.

Bilang default, ang mga simbolikong link ay hindi binabalewala. -a,--archive Pinapanatili ang istraktura at mga katangian ng orihinal na mga file kapag kinopya hangga't maaari (ngunit hindi pinapanatili ang istraktura ng direktoryo). Katumbas ng mga pagpipilian sa pagtatakda. -dpPR-b Tingnan ang talakayan ng mga backup sa ibaba.--kopya-nilalaman (dahil ang file-utils 4.1) Ang file-utils 4.0 ay gumagawa ng isang hangal na bagay, sinusubukang kopyahin ang mga nilalaman ng device at FIFO file sa panahon ng isang recursive na kopya. Huwag kailanman gamitin ang opsyong ito. Gamit nito, ang `cp' ay maaaring mag-hang lamang sa pagbabasa ng FIFO o /dev/tty o punan ang buong disk sa pamamagitan ng pagkopya sa /dev/zero.-d Kinokopya ang mga simbolikong link bilang mga simbolikong link sa halip na ang mga file na itinuturo nila, at pinapanatili ang mga matitigas na link sa pagitan ng mga source file sa mga kopya. --kaunti Sa file-utils 4.0 ang long --no-dereference na opsyon ay kasingkahulugan para sa -d na opsyon, ngunit sa file-utils 4.1 ito ay kasingkahulugan para sa -P na opsyon, habang ang -d na opsyon ay katumbas ng --no -dereference --preserve options = mga link. -f, Tinatanggal ang mga umiiral nang file kung may naganap na error kapag binubuksan ang mga ito para sa pagbabasa at hindi kailanman humihingi ng kumpirmasyon bago gawin ito. (Ang pag-uugaling ito ay nagsimula sa file-utils 4.1. Sa file-utils 4.0 ang opsyong ito ay katumbas ng DAGDAG bagong opsyon --alisin-destinasyon.) (since file-utils 4.1) Tingnan ang paglalarawan ng POSIX sa itaas.-ako, --interactive. Nagtatanong kung ang mga umiiral na ay dapat na ma-overwrite regular na mga file-l, --link Gumagawa ng mga hard link sa halip na kopyahin ang mga regular na file (hindi mga direktoryo).-L, --dereference(since file-utils 4.1) Tingnan ang paglalarawan ng POSIX sa itaas.--no-preserve= MGA KATANGIAN (since file-utils 4.1) Hindi nagse-save ng mga tinukoy na attribute. Tingnan ang --preserve na opsyon sa ibaba.-p, --preserba(since file-utils 4.1) Tingnan ang paglalarawan ng POSIX sa itaas. Pinoprotektahan ang orihinal na mga parameter ng file tulad ng may-ari, grupo, mga pahintulot at timestamp. --preserba= (since file-utils 4.1) Dito ang parameter na ATTRIBUTES ay maaaring kumuha ng isa sa mga value na "mode" (mga karapatan sa pag-access), "pagmamay-ari" (may-ari at grupo), "timestamps" (time stamps), "links", "all "(lahat ng nasa itaas).-P, --no-dereference(dahil ang file-utils 4.0 din -P) Binubuo ang pangalan ng bawat file na kokopyahin sa pamamagitan ng pagdugtong ng pangalan ng direktoryo kung saan ito kumukopya ng forward slash (/) at ang tinukoy na buong pangalan ng source file. Huling argumentong ibinigay cp dapat ay ang pangalan ng isang kasalukuyang direktoryo. Halimbawa, ang command na cp --parents a/b/c existing_dir copies file a/b/c sa existing_dir/a/b/c, na lumilikha ng nawawalang intermediate na mga direktoryo. -r Sa file-utils 4.1: isang kasingkahulugan para sa -R na opsyon. Sa file-utils 4.0: Kinokopya ang mga direktoryo nang paulit-ulit, kinokopya ang anumang hindi mga direktoryo at hindi simbolikong mga link (i.e. FIFO at mga espesyal na file), na parang mga regular na file. Ang hangal na pag-uugali na ito ay maaaring makamit sa file-utils 4.1 sa pamamagitan ng pagtukoy sa --copy-contents na opsyon. -R, --recursive Kinokopya ang mga direktoryo nang paulit-ulit, pinoprotektahan ang mga hindi direktoryo. --reply=PAANO(since file-utils 4.1) Dito ang HOW argument ay maaaring tumagal ng isa sa mga value na "yes", "no", "query", pagtukoy kung aling sagot ang awtomatikong ibibigay sa lahat ng tanong: "yes", "no" or "query" sa gumagamit nang naaayon. --alisin-destinasyon(since file-utils 4.1) Tinatanggal ang bawat umiiral na (sa lugar kung saan nangyayari ang pagkopya) na file bago kumopya. Sa file-utils 4.0, ang opsyong ito ay tahasang pinagana kapag ang -f na opsyon ay tinukoy. --kaunti=KAILAN Ang isang kalat-kalat na file ay naglalaman ng mga butas - mga pagkakasunud-sunod ng mga zero byte na hindi sumasakop sa mga pisikal na bloke sa disk; tawag sa sistema basahin ang mga ito bilang mga zero. Ang diskarte na ito ay maaaring parehong makatipid ng puwang sa disk at mapataas ang bilis ng pagpapatakbo, dahil marami binary file cp naglalaman ng maraming magkakasunod na zero byte. Bilang default, KAILAN kinikilala ang mga butas sa isang source file gamit ang simpleng heuristics at ginagawang kalat din ang kaukulang output file. Parameter: kayang tanggapin sumusunod na mga halaga sasakyan Default na gawi: Ang output file ay kalat-kalat kung ang input file ay kalat din. palagi Palaging gawing hiwa-hiwalay ang output file. Ito ay kapaki-pakinabang kapag input file matatagpuan sa file system, na hindi sumusuporta sa mga kalat-kalat na file, at ang output file ay matatagpuan sa isang file system na sumusuporta sa kanila. hindi kailanman Huwag kailanman gawing kalat-kalat ang mga output file. Kung makakita ka ng paggamit para sa opsyong ito, mangyaring ipaalam sa amin. --strip-trailing-slashes --symbolic-link Gumagawa ng mga simbolikong link sa halip na kopyahin ang mga hindi direktoryo. Ang lahat ng mga pangalan ng source file ay dapat na ganap na kwalipikado, ibig sabihin, nagsisimula sa /, maliban kung ang mga simbolikong link ay gagawin sa kasalukuyang direktoryo. Bumubuo ang opsyong ito ng mensahe ng error kung hindi sinusuportahan ng system ang mga simbolikong link. -S Backup suffix, tingnan sa ibaba. --target-directory=CATALOG(since file-utils 4.1) Tinutukoy ang patutunguhang direktoryo kung saan gagawin ang kopya. Sinadya para gamitin sa xargs(1), tulad ng sa "ls | xargs cp --target- directory=../d". -ikaw, --update Huwag kumopya ng mga hindi direktoryo na mayroon na sa lokasyong kinokopya kung mayroon silang pareho o mas maagang oras ng pagbabago. -v, --verbose I-print ang pangalan ng bawat file bago ito kopyahin. -x, --isang-file-system Laktawan ang mga subdirectory na matatagpuan sa mga file system maliban sa kung saan nagsimula ang kopya.

Kung susubukan mong kopyahin ang isang file sa sarili nito, walang mangyayari (maliban sa posibleng mensahe ng error). Kapag ang isang file ay kinopya sa isa pang umiiral na file, ito ay bubuksan gamit ang open(path, O_WRONLY | O_TRUNC) na tawag. Kapag natupad muli ang pagkopya RESERVE PAGKOPYA Walang default na opsyon - dapat mong tukuyin ang isa sa mga opsyon upang makamit ang ninanais na resulta.

Mga bersyon ng GNU ng mga programa tulad ng cp, mv, ln, i-install At patch maaari, kung kinakailangan, gawin mga backup mga file na o-overwrite, babaguhin o sisirain. Kung nais, ang mga backup na kopya ng mga file ay nilikha gamit ang -b na opsyon. Ang itatawag sa kanila ay tinukoy ng -V na opsyon. Kung ang backup na pangalan ng file ay nilikha sa pamamagitan ng pagdaragdag ng suffix sa pangalan ng orihinal na file, ang suffix ay tinukoy gamit ang -S na opsyon. -b, , na isang exception. Gumawa ng mga backup na kopya ng mga file na ma-overwrite o tatanggalin. --backup=KONTROL(Dahil fileutils-4.1.) -S SUFFIX, --suffix=SUFFIX Idagdag SUFFIX sa pangalan ng file kapag gumagawa ng backup na kopya. Kung hindi tinukoy ang opsyong ito, maaari ding itakda ang suffix gamit ang environment variable SIMPLE_BACKUP_SUFFIX Kung walang tinukoy na opsyon o variable, ang default na suffix ay ~. -V, PARAAN-V--version-control= -V Tinutukoy kung paano papangalanan ang mga backup na file. Pangangatwiran maaaring kunin ang mga halaga na may numero (o t), umiiral (o wala) at hindi kailanman (o simple). Kung hindi tinukoy ang opsyong ito, gagamitin ang halaga variable ng kapaligiran VERSION_CONTROL . Kung ang halaga ng variable na ito ay hindi tinukoy, ang default na uri backup ay nakatakda sa umiiral na. Ang pagpipiliang ito -V tumutugma sa variable na kontrol sa bersyon sa Emacs. Mga wastong halaga ay (pinahihintulutan ang mga hindi malabo na pagdadaglat):, t may bilang Palaging gumawa ng may bilang na mga backup na kopya ng mga file., wala Gumawa ng mga backup na file na may numero para sa mga file na mayroon na ng mga ito at simpleng pag-backup para sa iba pang mga file. file system, simple lang Palaging gumawa ng mga simpleng backup.

STANDARD Kung susubukan mong kopyahin ang isang file sa sarili nito, walang mangyayari (maliban sa posibleng mensahe ng error). Kapag ang isang file ay kinopya sa isa pang umiiral na file, ito ay bubuksan gamit ang open(path, O_WRONLY | O_TRUNC) na tawag. Kapag natupad muli ang pagkopya Walang default na opsyon - dapat mong tukuyin ang isa sa mga opsyon upang makamit ang ninanais na resulta.

--tulong Mag-print ng pahiwatig sa karaniwang output at matagumpay na lumabas. --bersyon I-print ang impormasyon ng bersyon sa karaniwang output at matagumpay na lumabas. -- Nagsisilbing markahan ang dulo ng isang listahan ng mga opsyon.

KAPALIGIRAN

Kapag nagtatrabaho sa karaniwang paraan, ginagamit ang mga halaga mga variable ng LANG, LC_ALL, LC_COLLATE, LC_CTYPE at LC_MESSAGES. Para sa bersyon ng GNU, ang SIMPLE_BACKUP_SUFFIX at VERSION_CONTROL na mga variable ay ginagamit din upang kontrolin ang paglikha ng mga backup, tulad ng inilarawan sa itaas.

PAGKAKAtugma

POSIX 1003.2

MGA TALA

Ang pahinang ito inilalarawan ang bersyon cp package fileutils-4.1; ang ibang mga bersyon ay maaaring may kaunting pagkakaiba. Mangyaring magpadala ng mga pagwawasto at pagdaragdag sa: [email protected]. Mangyaring magpadala ng mga ulat ng bug sa program na ito sa: [email protected].

PAGSASALIN

Isinalin mula sa Ingles ni Viktor Vislobokov 2003

Kahit na ang cat command ay minsan ginagamit upang kopyahin ang mga file, sa Linux mayroong isang espesyal na cp command para dito. Maaari itong magamit sa isa sa dalawang anyo:

$cp source destination

$ cp source_directory new_directory

Sa unang kaso, ang source file o direktoryo ay kinokopya, ayon sa pagkakabanggit, sa patutunguhang file o direktoryo, at sa pangalawang kaso, ang mga file na nakapaloob sa source_directory directory ay kinopya sa new_directory directory. Upang kopyahin, dapat ay mayroon kang mga karapatan sa pagbabasa sa mga file na kinokopya at pagsulat ng mga karapatan sa direktoryo kung saan ka kinokopya.

Kung ang isang umiiral na file ay tinukoy bilang ang target, ang mga nilalaman nito ay mapapatungan, kaya dapat kang maging maingat sa pagkopya. Gayunpaman, maaari mong gamitin ang utos ng cp gamit ang -i na opsyon, na hihingi ng kumpirmasyon bago i-overwrite ang isang umiiral na file.

Ang cp command ay may ilang iba pang kapaki-pakinabang na opsyon:

Ibig sabihin

Sine-save ang oras ng pagbabago ng file at maximum na posibleng mga pahintulot. Kung wala ang pagpipiliang ito, ang bagong file ay itinalaga ang mga pahintulot na naaayon sa mga pahintulot ng user na naglunsad ng command

Kung ang pinagmulan ay isang direktoryo, ito at ang lahat ng mga subdirectory na kasama dito ay kinokopya, ibig sabihin, ang orihinal na anyo ng puno ng direktoryo ay napanatili

Kung itinakda mo ang opsyong ito, ang mga simbolikong link ay mananatiling mga link (kung hindi man, sa halip na ang link, ang file kung saan ibinigay ang link ay kinokopya)

I-overwrite ang mga file kapag kumukopya (kung mayroon na sila) nang walang karagdagang babala

Team mv

Kung kailangan mong ilipat ang isang file mula sa isang direktoryo patungo sa isa pa sa halip na kopyahin ito, maaari mong gamitin ang mv command. Ang syntax ng command na ito ay katulad ng syntax ng cp command. Bukod dito, kinokopya muna nito ang file (o direktoryo) at pagkatapos ay tatanggalin ang orihinal na file (direktoryo). At ang mga pagpipilian nito ay kapareho ng sa cp.

Ang mv command ay maaaring gamitin hindi lamang upang ilipat, ngunit pati na rin upang palitan ang pangalan ng mga file at direktoryo (iyon ay, ilipat ang mga ito sa loob ng parehong direktoryo). Upang gawin ito, kailangan mo lamang na tukuyin ang luma at bagong mga pangalan ng file bilang mga argumento:

$mv lumang pangalan bagong pangalan

Tandaan na hindi ka pinapayagan ng mv command na palitan ang pangalan ng maraming file nang sabay-sabay (gamit ang pattern ng pangalan), kaya hindi gagana ang mv *.xxx *.yyy command.

Kapag gumagamit ng mv command, tulad ng kapag gumagamit ng cp, tandaan na gamitin ang -i na opsyon upang makatanggap ng babala kapag ang isang file ay na-overwrite.

Ang rm at rmdir na mga utos

Upang tanggalin hindi kinakailangang mga file at mga direktoryo sa Linux, ang mga command na rm (alisin ang mga file) at rmdir (alisin ang isang walang laman na direktoryo) ay ginagamit. Upang magamit ang mga utos na ito, dapat ay mayroon kang access sa pagsulat sa direktoryo kung saan matatagpuan ang mga file o direktoryo na tatanggalin. Gayunpaman, hindi kinakailangan ang pahintulot na baguhin ang mga file mismo. Kung gusto mong makatanggap ng karagdagang kahilingan para kumpirmahin ang operasyon bago magtanggal ng file, gamitin ang -i na opsyon.

Kung susubukan mong gamitin ang rm na utos (nang walang anumang mga pagpipilian) upang tanggalin ang isang direktoryo, sasabihan ka na ito ay isang direktoryo at hindi tatanggalin. Upang tanggalin ang isang direktoryo, kailangan mong tanggalin ang lahat ng mga file sa loob nito, at pagkatapos ay tanggalin ang mismong direktoryo na ginagamit mga utos ng rmdir. Gayunpaman, maaari mo ring tanggalin ang isang hindi walang laman na direktoryo at lahat ng mga subdirectory at file nito sa pamamagitan ng paggamit ng rm command na may opsyong -r.

Kung ibibigay mo ang rm * command, tatanggalin nito ang lahat ng file sa kasalukuyang direktoryo. Ang mga subdirectory ay hindi tatanggalin. Upang tanggalin ang parehong mga file at subdirectory ng kasalukuyang direktoryo, dapat mo ring gamitin ang -r na opsyon. Gayunpaman, laging tandaan na ang Linux ay walang utos na ibalik ang mga file pagkatapos na matanggal ang mga ito (kahit na nahuli mo ang iyong sarili kaagad pagkatapos maling tanggalin ang isang file o direktoryo)!

Ipapakita sa iyo ng gabay na ito kung paano kumopya ng mga file at direktoryo sa iyong system gamit ang Linux command line.

Ang utos na ginagamit upang kopyahin ang mga file ay Wed

Paano kopyahin ang isang file mula sa isang direktoryo patungo sa isa pa gamit ang Linux

Ang syntax upang kopyahin ang isang file mula sa isang lokasyon patungo sa isa pa ay ang mga sumusunod:

Cp /source/path/name /target/path/name

  • bahay
    • andreyex
      • mga dokumento
        • folder_one
          • file_one
          • file_two
          • file_three
        • folder_dalawa
          • file4

Kung gusto mong kopyahin ang file_one mula sa kasalukuyang lokasyon sa /home/documents/folder_one sa /home/documents/folder_two pagkatapos ay kailangan mong ipasok ang sumusunod na command sa command line:

Cp /home/andreyex/documents/folder_one/file_one /home/andreyex/documents/folder_two/file_one

Mayroong ilang mga shortcut na maaari mong gawin dito.

/ Ang pangunahing bahagi ay maaaring mapalitan ng isang tilde (~), na ipinaliwanag sa artikulong ito. Binabago nito ang utos dito

cp ~/documents/folder_one/file_one ~/documents/folder_two/file_one

Maaari mo lamang alisin ang filename para sa target kung gagamitin mo ang parehong filename

Cp ~/documents/folder_one/file_one ~/documents/folder_two

Kung ikaw ay nasa target na folder maaari mo lamang palitan ang target na landas ng isang ganap na hinto.

Cp ~/documents/folder_one/file_one

Bilang kahalili, kung nakapasok ka na orihinal na folder maaari mo lamang tukuyin ang filename bilang pinagmulan tulad nito:

Paano Gumawa ng Backup Bago Kopyahin ang mga File sa Linux

Sa nakaraang seksyon, ang folder_one ay naglalaman ng isang file na pinangalanang file_one at folder_two ay hindi. Isipin na ang folder_two ay may isang file na pinangalanang file_one at pinapatakbo mo ang sumusunod na command:

Cp file_one ~/documents/folder_two

Ang utos sa itaas ay mao-overwrite ang file_one, na kasalukuyang nasa folder_two. Walang mga prompt, walang babala, at walang mga mensahe ng error dahil nagbigay ka ng wastong utos.

Maaari kang mag-ingat sa pagkopya ng mga file sa pamamagitan ng pagkuha sa Linux na gumawa ng backup na kopya ng file bago ito ma-overwrite. Gamitin lamang ang sumusunod na utos:

Cp -b /source/file /target/file

Halimbawa:

Cp -b ~/documents/folder_one/file_one ~/documents/folder_two/file_one

Ang destination folder ay magkakaroon na ngayon ng file na nakopya at magkakaroon din ng file na may tilde (~) sa dulo, na isang backup na kopya ng orihinal na file.

Maaari mong baguhin ang backup na command upang gumana sa isang bahagyang naiibang paraan upang makalikha ito ng mga may bilang na backup. Magagawa mo ito kung nakopya mo na ang mga file at umiiral na ang mga backup. Ito ay isang paraan ng kontrol sa bersyon

Cp --backup=numbered ~/documents/folder_one/file_one ~/documents/folder_two/file_one

Ang pangalan ng file para sa mga backup ay magbabago sa daan 1.~1~, file_one.~2~, atbp.

Paano mag-prompt bago mag-overwrite ng mga file kapag kumukopya sa Linux

Kung hindi mo gustong mag-back up ng mga file sa iyong file system, ngunit gusto mo ring tiyakin na ang copy command ay hindi basta-basta na nag-overwrite sa isang file, maaari kang ma-prompt na ipahiwatig kung gusto mong mag-overwrite.

Upang gawin ito, gamitin ang sumusunod na syntax:

Cp -i /source/file /target/file

Halimbawa:

Cp -i ~/documents/folder_one/file_one ~/documents/folder_two/file_one

Magiging ganito ang mensahe: cp: i-overwrite ang './file1'?

Upang i-overwrite ang isang file, pindutin ang Y sa iyong keyboard, o upang kanselahin, pindutin ang N o CTRL at C nang sabay.

Ano ang mangyayari kapag kinopya mo ang mga simbolikong link sa Linux

Isipin na mayroon ka sumusunod na istraktura mga folder:

  • bahay
    • andreyex
      • mga dokumento
        • folder_one
          • file_one
        • folder_dalawa
          • file_one (mga simbolikong link na tumuturo sa folder_one/file_one)
        • folder3

Tingnan ang sumusunod na utos:

Cp ~/documents/folder_one/file_one ~/documents/folder3/file_one

Hindi dapat ito bago dahil ito ay pangongopya pisikal na file mula sa isang folder patungo sa isa pa.

Ano ang mangyayari, gayunpaman, kung kopyahin mo ang simbolikong link mula sa folder_two patungo sa folder3?

Cp ~/documents/folder_two/file_one ~/documents/folder3/file_one

Ang file na kinopya sa folder3 ay hindi isang simbolikong link. Ito talaga ang file na itinuturo ng symlink, kaya sa katunayan ay makakakuha ka ng parehong resulta na parang kinopya mo ang file_one mula sa folder_one.

Sa pamamagitan ng paraan, maaari kang makakuha ng parehong resulta sa sumusunod na utos:

Cp -H ~/documents/folder_two/file_one ~/documents/folder3/file_one

Para makasigurado kahit may isa pang switch na talagang pinipilit ang file na makopya at hindi ang symlink:

Cp -L ~/documents/folder_two/file_one ~/documents/folder3/file_one

Kung gusto mong kopyahin ang isang simbolikong link dapat mong tukuyin ang sumusunod na command:

Cp -d ~/documents/folder_two/file_one ~/documents/folder3/file_one

Cp -P ~/documents/folder_two/file_one ~documents/folder3/file_one

Paano gumawa ng mga hard link gamit ang cp command

Sasabihin sa iyo ng gabay na ito ang lahat ng kailangan mong malaman tungkol sa mga hard link.

Cp -l ~/source/file ~/target/file

Bilang isang halimbawa kung bakit maaari kang gumamit ng isang hard link, isaalang-alang na mayroon kang isang folder na tinatawag na mga video at sa loob ng folder na iyon ng video na mayroon ka talaga magandang video file na may pangalang honeymoon_video.mp4. Ngayon isipin na gusto mo ring kilalanin ang video bilang barbados_video.mp4 dahil mayroon din itong footage ng Barbados.

Maaari mo lamang kopyahin ang file at bigyan ito ng bagong pangalan, ngunit nangangahulugan ito na kumikita ka ng doble espasyo sa disk para sa kung ano ang mahalagang parehong video.

Sa halip, maaari kang gumawa ng simbolikong link na tinatawag na barbados_video.mp4 na tumuturo sa file na honeymoon_video.mp4. Ito ay gagana nang maayos, ngunit kung may nagtanggal ng honeymoon_video.mp4 ay maiiwan sa iyo ang link at wala nang iba pa at ang link ay kukuha pa rin ng espasyo sa disk.

Ang pagkakaiba lamang ay naglalaman ang mga ito iba't ibang dami inodes. (mga natatanging identifier). Ang pagtanggal sa honeymoon_video.mp4 file ay hindi nagtatanggal ng file, ngunit binabawasan lamang ang bilang para sa file na iyon ng 1. Ang file ay tatanggalin lamang kung ang lahat ng mga reference sa file na iyon ay tatanggalin.

Cp -l /videos/honeymoon_video.mp4 /videos/barbados_video.mp4

Paano gumawa ng mga simbolikong link gamit ang cp command

Cp -s /source/file /target/file

Muli, sa pangkalahatan ay gagamitin ko ang ln -s command, ngunit ito ay gumagana nang maayos sa halip.

Paano kopyahin ang mga file kung mas bago ang mga ito

Kung gusto mong kopyahin ang mga file sa isang folder, ngunit i-overwrite lamang ang mga patutunguhang file kung mas bago ang source file, maaari mong gamitin ang sumusunod na command:

Cp -u /source/file /target/file

Ito ay nagkakahalaga ng noting na kung ang file ay hindi umiiral sa target na bahagi, pagkatapos ay isang kopya ay magaganap.

Paano kopyahin ang maramihang mga file

Maaari kang magbigay ng higit sa isang source file sa loob ng copy command tulad nito:

Cp /source/file_one /source/file_two /source/file_three /target

Kokopyahin ng command sa itaas ang file_one, file_two at file_three sa target na folder.

Kung tumutugma ang mga file sa isang partikular na pattern, maaari mo ring gamitin ang mga wildcard na tulad nito:

Cp /home/andreyex/music/*.mp3 /home/andreyex/music2

Kokopyahin ng command sa itaas ang lahat ng file na may extension na .mp3 sa music2 folder.

Paano kopyahin ang mga folder

Ang pagkopya ng mga folder ay kapareho ng pagkopya ng mga file.

Halimbawa, isipin na mayroon kang sumusunod na istraktura ng folder:

  • bahay
    • andreyex
      • mga dokumento
        • folder_one
          • file_one
          • file_two
        • folder_dalawa

Isipin na gusto mong ilipat ang folder na folder_one sa folder na folder_two tulad nito:

  • bahay
    • andreyex
      • mga dokumento
        • folder_dalawa
          • folder_one
            • file_one
            • file_two

Maaari mong gamitin ang sumusunod na command:

Cp -r /home/andreyex/documents/folder_one /home/andreyex/documents/folder_two

Bilang kahalili, maaari mong gamitin ang sumusunod na command:

Cp -R /home/andreyex/documents/folder_one /home/andreyex/documents/folder_two

Kinokopya nito ang mga nilalaman ng folder_one, pati na rin ang anumang mga sub-directory at mga file sa loob ng mga sub-directory.

Ipagpatuloy

Ang gabay na ito ay nagbigay sa iyo ng mga tool na kailangan mo upang kopyahin ang mga file sa Linux. Para sa lahat ng iba pa maaari mong gamitin ang Linux man command.

Ang cp team ay ang lifesaver na palaging darating para iligtas. Kung kaka-install mo pa lang ng Linux at hindi mo ito na-install, ngunit para mag-set up ng Internet access kailangan mong i-configure ilang mga file, pagkatapos ay tutulungan tayo ng cp team na walang katulad.
Sabihin nating upang mag-set up ng Internet access kailangan mong baguhin ang ilang mga file, ngunit dahil sa kakulangan ng mga karapatan sa pag-access sa kanila, hindi mo ito magagawa sa pamamagitan ng graphical na interface. Ngunit maaari kang lumikha ng isang file gamit ang graphical na interface sa alinman naa-access na folder(halimbawa /home/username), punan ito ayon sa mga tagubilin o manwal at, sa pagtakbo na sinusundan ng , palitan ang umiiral na file ng nilikha mo gamit ang cp command.
Halimbawa, ikaw, tulad ko, ay kailangang baguhin ang /etc/network/interfaces. Sa personal, gamit ang graphical na interface, nilikha ko ang file ng mga interface sa /home/viuktor/. Kinopya ko ang mga nilalaman ng orihinal (file /etc/network/interfaces) dito, idinagdag mga kinakailangang linya at iniligtas ito. At pagkatapos, gamit ang cp, pinalitan ko ang file /etc/network/interfaces ng file /home/viuktor/interfaces..
Totoo, fulfilling operasyong ito, dapat kang magbayad ng maximum na pansin, dahil kadalasan ang ilang mga file ay kailangang dagdagan ng isa o higit pang mga linya. Samakatuwid, kung ang manwal ay nagsasabing "magdagdag...", sa anumang pagkakataon ay hindi makakalimutang kopyahin ang lahat mula sa orihinal patungo sa file na iyong nilikha.

Ang cp command ay ginagamit upang kopyahin at ilipat ang mga file.

Mayroon itong sumusunod na syntax cp (parameter)<источник> <пункт назначения>

DESCRIPTION Sa unang anyo, kinokopya ng cp utility ang mga nilalaman ng file source_file sa target_file. Sa pangalawang anyo, ang mga nilalaman ng bawat isa tinukoy na file kinopya sa target_directory. Ang mga pangalan ng mga file mismo ay hindi nagbabago. Kung ang cp ay nakakita ng isang pagtatangka na kopyahin ang isang file sa sarili nito, ang kopya ay hindi isinasagawa. na nilalaman nito. Kung ang source_file ay nagtatapos sa /, ang direktoryo mismo ay hindi kinokopya, tanging ang mga nilalaman nito. Pinipilit din ng opsyong ito na kopyahin ang mga symlink sa halip na ang mga bagay na itinuturo nila, at nagiging sanhi ng cp na lumikha ng mga espesyal na file sa halip na kopyahin ang mga ito tulad ng mga normal. Ang mga nilikhang direktoryo ay may parehong mga karapatan sa pag-access gaya ng mga direktoryo ng pinagmulan, anuman ang halaga ng umask na may bisa para sa proseso. Tandaan na kinokopya ng cp ang mga hard link bilang hiwalay na mga file. Kung kailangan mong mag-imbak ng mga hard link, gamitin ang tar(1), cpio(1) o pax(1).-f Para sa bawat umiiral nang target na pathname, alisin ito at gawin ito bagong file, nang hindi nangangailangan ng kumpirmasyon ng operasyon, anuman ang mga karapatan sa pag-access nito. (I-override ng -f na opsyon ang anumang naunang tinukoy na -i o -n na opsyon.) -i Nagiging sanhi ng cp na mag-isyu ng kahilingan sa pamamagitan ng karaniwang file mga error bago kopyahin ang isang file, na magiging sanhi ng pag-overwrite sa umiiral na file. Kung ang sagot na natanggap mula sa karaniwang input ay nagsisimula sa isang `y" o `Y", susubukan ang isang kopya. (I-override ng opsyong -i ang anumang naunang tinukoy na -f o -n na mga opsyon.) -l ​​Lumikha ng mga hard link sa mga regular na file sa hierarchy sa halip na kopyahin ang mga ito.-n Huwag i-overwrite ang mga kasalukuyang file. (I-override ng opsyong -n ang epekto ng anumang naunang -f o -i na opsyon.) -p Nagiging sanhi ng cp na iimbak ang mga sumusunod na katangian ng bawat source file sa ang kopyang ginagawa, na nagpapakita ng mga file habang kinokopya ang mga ito. Para sa bawat target na file na mayroon na, ang mga nilalaman nito ay mapapatungan kung pinapayagan ng mga pahintulot. Ang access mode nito at mga user at group ID ay hindi binabago maliban kung ang -p na opsyon ay tinukoy. Sinusuportahan ang opsyong ito, ngunit ang pag-uugali nito ay naiiba sa makasaysayang isa. Ang paggamit ng opsyong ito ay lubos na hindi hinihikayat dahil ang pag-uugali nito ay nakasalalay sa pagpapatupad. Sa FreeBSD, ang -r ay kasingkahulugan ng -RL at pareho ang gumagana maliban kung na-override ng ibang mga flag. Ang pagpapatupad ng -r sa mga mas lumang bersyon ay naiiba dahil kapag muling nililikha ang hierarchy ng file, ang mga espesyal na file ay kinopya bilang mga normal.



Ang -v at -n na mga opsyon ay hindi karaniwan at ang kanilang paggamit sa mga script ng command ay hindi inirerekomenda. TINGNAN DIN ang mv(1), rcp(1), umask(2), fts(3), symlink(7) HISTORY Ang cp command ay ipinakilala sa Bersyon 1 ng AT&T UNIX.Nakaraang artikulo
Ina-update ang firmware para sa mga Samsung Galaxy na smartphone Naghahanda para sa firmwareSusunod na artikulo