คำถามติดแท็ก cp

cp - เครื่องมือบรรทัดคำสั่งเพื่อคัดลอกไฟล์

5
CP ไฟล์ที่ซ่อนอยู่กับรูปแบบ glob
สถานการณ์: $ mkdir foo && touch foo/.test $ cp foo/* . zsh: no matches found: foo/* (or bash : cp: cannot stat ‘foo/*’: No such file or directory) ฉันมีไดเรกทอรีที่เต็มไปด้วยโฟลเดอร์และไฟล์ที่ซ่อนอยู่ เกิดอะไรขึ้นและทางออกคืออะไร?
13 zsh  wildcards  cp  dot-files 


5
ฉันจะระงับข้อความแสดงข้อผิดพลาดจาก cp ได้อย่างไร
cpฉันกำลังมองหาวิธีการที่จะสั่งปราบข้อผิดพลาดในลินุกซ์โดยเฉพาะอย่างยิ่งคำสั่ง ฉันทำ: root@ubuntu:~$ cp /srv/ftp/201*/wha*/*.jj ~/. cp: cannot stat `/srv/ftp/201*/wha*/*.jj': No such file or directory ฉันจะระงับข้อความแสดงข้อผิดพลาดที่พิมพ์บนหน้าจอได้อย่างไร นั่นคือฉันไม่ต้องการเห็นข้อความแสดงข้อผิดพลาดนี้ในมอนิเตอร์ของฉัน
13 shell  wildcards  cp 

1
การรักษาแอตทริบิวต์เพิ่มเติมด้วย cp / rsync
เมื่อคัดลอกด้วยcpคุณสมบัติเพิ่มเติมจะไม่ถูกเก็บไว้แม้จะชัดเจน cp -a --preserve=all /source /dest หรือ cp -a --preserve=xattr /source /dest เช่นเดียวกันกับrsyncคือ rsync -aq -A -X --delete /source /dest อย่างไรก็ตามบนระบบไฟล์ปลายทางฉันสามารถสร้างแอททริบิวต์แบบขยายได้ด้วยตนเอง (พร้อมchattr) ซึ่งหมายความว่าระบบไฟล์เป้าหมายรองรับ xattr ทำไมฉันไม่สามารถที่จะรักษาxattrด้วยcpหรือrsync? ข้อมูลเพิ่มเติม: ทั้งระบบไฟล์ต้นทางและปลายทางคือ ext4 ทั้งระบบไฟล์ต้นทางและปลายทางเป็นโลคัล (ไม่ใช่ nfs) ฉันใช้ Debian Wheezy
12 filesystems  rsync  cp  xattr 

3
ไฟล์ cp หรือ mv ไปยังไดเรกทอรีเดียวกันพวกเขาอยู่ในเมื่อฉันอยู่ในอีก?
ถ้าฉันอยู่~/blobและฉันมีไฟล์~/blob/a_long_directory_name/c/x.x ฉันพิมพ์ได้ mv blob/a_long_directory_name/c/x.x blob/a_long_directory_name/even_more/y.y มีทางลัดใดบ้างโดยที่ฉันสามารถพิมพ์บางสิ่งที่สั้นกว่าซึ่งใช้เส้นทางไดเรกทอรีในพารามิเตอร์แรก (ไม่ใช่ไดเรกทอรีปัจจุบันของฉัน), เช่น mv blob/a_long_directory_name/c/x.x $same_dir/y.y ที่สิ่งที่ต้องการ$same_dirจะชี้ไปที่ dir of param 1

4
คัดลอกไฟล์เดียวไปยังหลายไดเรกทอรีโดยใช้ cp
คำถามนี้เป็นผลสืบเนื่องของทุกคำถามก่อนหน้านี้ฉันสร้างไดเรกทอรีต่าง ๆ mkdirนานาโดยใช้ ฉันกำลังใช้bashเปลือก ฉันสร้างไดเรกทอรีห้าสิบรายการโดยเริ่มต้นด้วยคำนำหน้า "s" โดยใช้คำสั่ง: mkdir $(printf "s%02i " $(seq 1 50)) ซึ่งใช้ตัวเลขเป็นศูนย์ที่สองพร้อมเลขศูนย์ นั่นคือไดเรกทอรีที่ผมได้รับเป็นของแบบฟอร์มs01, ,s02 ... ,s49s50 ตอนนี้ฉันต้องการใช้cpเพื่อคัดลอกไฟล์เดียว (ตัวอย่างtest.txt) ไปยังแต่ละไดเรกทอรีห้าสิบ เป็นไปได้ไหมที่จะทำสิ่งนี้ในลักษณะที่คล้ายคลึงกับที่กล่าวมา ตัวอย่างเช่นงานต่อไปนี้จะทำงานอย่างไร ฉันค่อนข้างใหม่กับ Unix / Linux ดังนั้นฉันจึงไม่ต้องการลองนี้จนกว่าจะมีคนโปรดให้ฉันบ่งบอกว่ามันปลอดภัย cp test.txt $ (printf "s% 02i.txt" $ (seq 1 50)) มองไปที่manหน้าcpนั้นดูเหมือนจะไม่cpรองรับหลายปลายทางเช่นนี้อย่างไรก็ตาม: NAME cp - copy files and directories SYNOPSIS cp [OPTION]... …
12 bash  shell  cp 

3
คัดลอกเฉพาะไฟล์ปกติจากไดเรกทอรีหนึ่งไปยังอีกไดเรกทอรีหนึ่ง
ฉันต้องการคัดลอกเนื้อหาของไดเรกทอรี 1 ไปยังไดเรกทอรี 2 อย่างไรก็ตามฉันต้องการคัดลอกเฉพาะไฟล์ (และไม่ใช่ไดเรกทอรี) จากไดเรกทอรีของฉัน 1 ฉันจะทำอย่างไร cp dir1/* dir2/* แล้วฉันยังคงมีปัญหาไดเรกทอรี นอกจากนี้ไฟล์ทั้งหมดของฉันไม่ได้มีส่วนขยายใด ๆ ดังนั้น จะไม่ทำเคล็ดลับ
12 files  cp 

1
ทำไม“ cp -R --reflink = always” ทำการคัดลอกมาตรฐานในระบบไฟล์ btrfs?
Btrfs รองรับการคัดลอกเมื่อเขียน ฉันพยายามใช้คุณสมบัตินั้นเพื่อโคลนไดเรกทอรี: cp -R --reflink=always foo_directory foo_directory.mirror ฉันคาดว่าคำสั่งจะเสร็จสิ้นเกือบจะในทันที (เหมือนกbtrfs subvolume snapshot) แต่cpดูเหมือนว่าคำสั่งจะทำสำเนามาตรฐานช้า ตามหน้า man, ฉันคาดว่า--reflink=alwaysจะบังคับใช้ Copy-On-Write: เมื่อระบุ --reflink [= always] ให้ทำสำเนาแบบ Lightweight ซึ่งบล็อกข้อมูลจะถูกคัดลอกเฉพาะเมื่อมีการแก้ไข หากไม่สามารถทำสำเนาได้หรือหาก --reflink = auto ถูกระบุให้ถอยกลับไปเป็นสำเนามาตรฐาน คำถาม: คุณรู้ไหมว่าทำไม--reflink=alwaysไม่ทำงาน ฉันควรใช้ตัวเลือกใด (หรือคำสั่งอื่น) แทน?
12 cp  btrfs 

5
วิธีทดสอบว่าจะคัดลอกไฟล์ใดด้วยคำสั่ง cp
ฉันกำลังสร้างสคริปต์ง่าย ๆ ที่คัดลอกไฟล์ทั้งหมดจาก DIRECTORYA ที่ไม่มีอยู่ใน DIRECTORYB ฉันทำสิ่งนี้ผ่านการใช้คำสั่ง cp: cp -u DIRECTORYA/* DIRECTORYB สิ่งที่ฉันต้องการทำคือการส่งอีเมลไปยังผู้ดูแลระบบที่จะแสดงรายการไฟล์ที่ถูกคัดลอก ดังนั้นก่อนที่ฉันจะเรียกใช้คำสั่งด้านบนฉันต้องการรับไฟล์ที่จะคัดลอกและเก็บไว้ในตัวแปรเพื่อใช้ในภายหลังเมื่อสร้างข้อความอีเมลของฉัน ใครช่วยชี้ฉันในทิศทางที่ถูกต้องได้ไหม ฉันเคยใช้ grep มาก่อน แต่ฉันไม่คิดว่ามันจะใช้คำสั่ง cp ได้หรือไม่
11 cp  file-copy 

4
`cp -al` snapshot ซึ่งฮาร์ดลิงก์จะถูกนำไปยังไฟล์ใหม่เมื่อทำการแก้ไข
ฉันกำลังพยายามถ่ายภาพรวมของโฟลเดอร์ขนาดใหญ่เป็นประจำ ฉันได้อ่านที่นี่: http://www.mikerubel.org/computers/rsync_snapshots/#Incremental ที่cp -alจะถ่ายภาพโฟลเดอร์โดยเพียงแค่คัดลอกลิงก์ฮาร์ดไดรฟ์ นั่นคือทั้งหมดที่ดี แต่ปัญหาคือในภาพรวมนี้ถ้าฉันเปลี่ยนไฟล์มันจะเปลี่ยนในภาพรวมทั้งหมด สิ่งที่ฉันต้องการแทนคือการให้ระบบสร้างไฟล์ใหม่ที่มีการเปลี่ยนแปลงและเชื่อมโยงไปยังสิ่งนั้นแทน วิธีดังกล่าวแต่ละสแน็ปช็อตจะไม่ถูกต้องในการแก้ไขไฟล์แรก ฉันจะบรรลุสิ่งนั้นได้อย่างไร ป.ล. ฉันพยายามrsync -a --delete --link-dest=../backup.1 source_directory/ backup.0/แต่ก็มีปัญหาเดียวกัน

1
มีวิธีที่จะแสดง: - ลิงก์ - หรือถอยกลับสำเนาสามัญใน cp (จาก coreutils GNU)?
มีวิธีที่จะบอกcpไป--link(เช่นสร้างการเชื่อมโยงยาก) แต่ถอยกลับในกรณีที่ฉันกำลังพยายาม hardlinks ระหว่างอุปกรณ์? ลิงก์ระหว่างอุปกรณ์เป็นไปไม่ได้และอาจทำให้เกิดความcpล้มเหลว เหตุผลที่ฉันถามคือเพราะฉันต้องการใช้สิ่งนี้ในGNUmakefileและต้องการบรรทัดคำสั่งที่อ่านได้มากกว่าหนึ่งที่ซับซ้อนและยาว (หรือฟังก์ชั่นสำหรับเรื่องนั้น) คำถามสำหรับ GNU coreutils (7.4 และ 8.13) หมายเหตุ: ตอนนี้การแก้ปัญหาจะเป็นเช่น (GNU ทำไวยากรณ์สูตร): cp -fl $^ $@ || cp -f $^ $@ หลักสูตรนี้จะให้ข้อความแสดงข้อผิดพลาดปลอมในกรณีที่ลิงก์ระหว่างอุปกรณ์แม้ว่าจะประสบความสำเร็จในการcpโทรครั้งที่สองแล้ว นอกจากนี้สิ่งนี้จะได้รับการขยาย (รูปแบบต้นฉบับดูเหมือนว่าจะอ่านได้ทั้งหมด) จะไม่สามารถอ่านได้อีก


1
มีข้อเสียใด ๆ ของ `cp --sparse = always` หรือไม่?
มีเหตุผลใด ๆไม่ได้ที่จะใช้การใช้งาน--sparse=alwaysด้วยการภาวนาทุกcp? info cp พูดว่า: ‘--sparse=WHEN’ A “sparse file” contains “holes”—a sequence of zero bytes that does not occupy any physical disk blocks; the ‘read’ system call reads these as zeros. This can both save considerable disk space and increase speed, since many binary files contain lots of consecutive zero …

1
cp บอกว่ามันเป็นการลบไฟล์ แต่ไม่ควรจะเป็น
ทำการสำรองข้อมูลอย่างรวดเร็ว: root@guilmon:/mnt/backup/guilmon/home# cp -uvfrx --preserve=all /home/rena/ . ผลลัพธ์เป็นสิ่งที่น่าประหลาดใจ - ไฟล์บางไฟล์ถูกลบออกไป! removed ‘./rena/dev/lua/conkybitcoin/conkybitcoin.lua’ ดูเหมือนว่าไฟล์ที่ถูกลบจะสุ่มและไม่เปลี่ยนแปลง ทำไมถึงบอกว่าเอาออกไป แม้แต่คนแปลกหน้าดูเหมือนว่าจะไม่ได้ลบไฟล์นั้นจริง ๆ (หรือแหล่งที่มา) เกิดอะไรขึ้น?
10 backup  cp 

2
cp: ไม่สามารถสถิติ: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
sshฉันได้รับข้อผิดพลาดเมื่อฉันพยายามที่จะคัดลอกไฟล์จากคอมพิวเตอร์ท้องถิ่นของฉันไปยังเซิร์ฟเวอร์ระยะไกลด้วย ฉันได้รับข้อผิดพลาดเหมือนกันไม่ว่าฉันจะใช้หรือcpscp นี่คือข้อมูลของฉันที่เกิดข้อผิดพลาด: [root@xxx.xx.xxx.xx /]# cp /home/username/some.xml root@xxx.xx.xxx.xx:/path/to/directory/ cp: cannot stat ‘/home/username/some.xml’: No such file or directory ฉันตรวจสอบแล้วและมีไฟล์ที่เส้นทาง/home/username/some.xmlบนเครื่องของฉัน CentOS 7ทั้งเครื่องคอมพิวเตอร์และเซิร์ฟเวอร์ระยะไกลกำลังทำงานอยู่ ฉันจะแก้ไขข้อผิดพลาดและคัดลอกได้อย่างไร
10 ssh  centos  cp  scp 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.