ฉันกำลังพยายามคัดลอกเนื้อหาของโฟลเดอร์ไปยังโฟลเดอร์อื่นในไดเรกทอรีอื่นโดยใช้เทอร์มินัล
ใครบางคนจะสามารถให้ตัวอย่างของไวยากรณ์บรรทัดคำสั่งที่จำเป็นเพื่อให้บรรลุนี้
ฉันกำลังพยายามคัดลอกเนื้อหาของโฟลเดอร์ไปยังโฟลเดอร์อื่นในไดเรกทอรีอื่นโดยใช้เทอร์มินัล
ใครบางคนจะสามารถให้ตัวอย่างของไวยากรณ์บรรทัดคำสั่งที่จำเป็นเพื่อให้บรรลุนี้
คำตอบ:
คุณสามารถคัดลอกเนื้อหาของโฟลเดอร์/source
ไปยังโฟลเดอร์อื่นที่มีอยู่/dest
ด้วยคำสั่ง
cp -a /source/. /dest/
-a
ตัวเลือกเป็นตัวเลือกที่ดีขึ้น recursive ที่รักษาแอตทริบิวต์แฟ้มทั้งหมดและยังรักษา symlinks
ส่วน.
ท้ายของพา ธ ต้นทางคือcp
ไวยากรณ์เฉพาะที่อนุญาตให้คัดลอกไฟล์และโฟลเดอร์ทั้งหมดรวมถึงไฟล์ที่ถูกซ่อน
cp -a ~/Downloads/textext/. ~/.config/inkscape/extensions/
-p
ตั้งค่าสถานะเพื่อรักษาสิทธิ์ของไฟล์และการประทับเวลา cp -ap /var/www/original.com/images/. /var/www/new.com/images/
-a
แล้วก็หมายความว่ามีความกว้างมากกว่า--preserve=all
-p = --preserve=mode,ownership,timestamps
scp
ใช้เพื่อคัดลอกผ่านเครือข่าย (ผ่านssh
) และเข้ารหัสเฉพาะช่องทางการสื่อสารเท่านั้นไม่ใช่ไฟล์ในระบบไฟล์ปลายทาง
ทางเลือกคือ rsync
rsync -r source/ destination
ข้อดีของ rsync คือ:
หลังจากการซิงค์ครั้งแรกมันจะคัดลอกเฉพาะไฟล์ที่มีการเปลี่ยนแปลง
คุณสามารถใช้งานผ่านเครือข่ายสะดวกสำหรับไฟล์ใน $ HOME โดยเฉพาะไฟล์กำหนดค่า
rsync -r source/ destination
ควรจะเพียงพอไม่
rync source/ dest
ผู้ใช้จะต้องปรับแต่งคำสั่ง rsync ให้ทำงานตามที่ต้องการ
ช่วยบอกว่าคุณมีโฟลเดอร์ที่เรียกว่าfolder1ในของคุณ~
ภายในfolder1เป็น 1 ไฟล์ที่เรียกว่าfile1และ 2 โฟลเดอร์ที่เรียกว่าsub1และsub2แต่ละกับไฟล์และโฟลเดอร์อื่น ๆ ภายในพวกเขา
เพื่อคัดลอกเนื้อหาทั้งหมดของ~/folder1
ไปยัง~/new_folder1
คุณจะใช้
cp -r ~/folder1/. ~/new_folder1
new_folder1
folder1
จากนั้นก็จะมีไฟล์และโฟลเดอร์ทั้งหมดจาก
cp
เป็นคำสั่งที่จะคัดลอกโดยใช้เทอร์มินัล-r
ทำให้เรียกซ้ำ (ดังนั้นไดเรกทอรีปัจจุบัน + ไดเรกทอรีเพิ่มเติมภายในปัจจุบัน) ~/folder1
เป็นโฟลเดอร์ต้นทาง~/new_folder1
เป็นโฟลเดอร์ปลายทางสำหรับไฟล์ / โฟลเดอร์ภายในจุดเริ่มต้น
~/new_folder1/folder1
แทนการคัดลอกเนื้อหาไป
cp -r ~/folder1/* ~/new_folder1
[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]#
ตรวจสอบhttp://www.cyberciti.biz/faq/copy-folder-linux-command-line/สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการคัดลอกโฟลเดอร์ หวังว่านี่จะช่วยได้
cp Command
cp
เป็นคำสั่ง Linux สำหรับการคัดลอกไฟล์และไดเรกทอรี ไวยากรณ์มีดังนี้:
cp source destination
cp dir1 dir2
cp -option source destination
cp -option1 -option2 source destination
ในตัวอย่างนี้คัดลอก/home/vivek/letters
โฟลเดอร์และไฟล์ทั้งหมดไปยัง/usb/backup
ไดเรกทอรี:
cp -avr /home/vivek/letters /usb/backup
ที่ไหน
-a
: สงวนแอตทริบิวต์ที่ระบุเช่นโหมดไดเรกทอรีของไฟล์ความเป็นเจ้าของการประทับเวลาหากมีแอตทริบิวต์เพิ่มเติมที่เป็นไปได้: บริบทลิงก์ xattr ทั้งหมด
-v
: อธิบายสิ่งที่กำลังทำ
-r
: คัดลอกไดเรกทอรีซ้ำ ตัวอย่าง
คัดลอกโฟลเดอร์ชื่อ / tmp / conf ไปยัง / tmp / backup:
$ cp -avr /tmp/conf/ /tmp/backup
คัดลอกไดเรกทอรี dir_1 และเนื้อหา (_files_)ลงในไดเรกทอรีdir_2 :
cp -r ./dir_1 ./dir_2
# or
cp -r ./dir_1/ ./dir_2/
# Results in: ./dir_2/dir_1/_files_
คัดลอกเนื้อหา (_files_) เพียง dir_1ลงในไดเรกทอรีdir_2 :
cp -r ./dir_1/. ./dir_2
# or
cp -r ./dir_1/. ./dir_2/
# Results in: ./dir_2/_files_*
_files_
เป็นตัวยึดตำแหน่งสำหรับไฟล์จริงที่อยู่ในไดเรกทอรี
หากมีสองโฟลเดอร์: (ด้วยการอนุญาตให้เขียน)
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
หากคุณอยู่ในโฟลเดอร์ชื่อ PORTAL ที่คุณต้องการคัดลอกเนื้อหาทั้งหมดของโฟลเดอร์อื่นว่า DATA ในระดับเดียวกันคุณจะทำ
vimal@vimal-D3H:/var/www/html/PORTAL$ cp -a ../DATA/. .
คุณต้องสังเกตเห็น 2 จุด จุดสุดท้ายพูดว่าคัดลอกที่นี่ในโฟลเดอร์ปัจจุบัน
และ
กำลังติดตาม / DATA / ระบุว่าเนื้อหาทั้งหมดภายในโฟลเดอร์ DATA ที่จะคัดลอกไม่ใช่โฟลเดอร์ DATA เอง
หากคุณลบส่วนท้ายนี้ "." จาก / DATA /
จากนั้นโฟลเดอร์ DATA ทั้งหมดจะถูกคัดลอกภายใน PORTAL (จากตำแหน่งที่คุณเผชิญปัญหา)