cp -p จะเก็บเวลาสำหรับบางไฟล์ แต่ไม่ใช่ทั้งหมดหรือ


9

ฉันมีไดเรกทอรีแหล่งข้อมูลบนเครื่องที่มีไฟล์จำนวนมากซึ่งได้รับอนุญาตแบบเดียวกันทั้งหมดซึ่งฉันต้องการคัดลอกไปยังไดเรกทอรีอื่นซึ่งติดตั้งผ่าน SMB

[tmark@dexter JR09141045 roche_454_transfer]$ ls -l /source_dir
total 71348
-rwxrwxrwx 1 adminrig lifelabs 19768377 Mar 25 23:29 1.TCA.454Reads.fna
-rwxrwxrwx 1 adminrig lifelabs 53093396 Mar 25 23:29 1.TCA.454Reads.qual
-rwxrwxrwx 1 adminrig lifelabs     1035 Mar 25 23:29 454AllControlMetrics.csv
-rwxrwxrwx 1 adminrig lifelabs     2657 Mar 25 23:29 454AllControlMetrics.txt
-rwxrwxrwx 1 adminrig lifelabs     4607 Mar 25 23:29 454BaseCallerMetrics.csv
-rwxrwxrwx 1 adminrig lifelabs    14518 Mar 25 23:29 454BaseCallerMetrics.txt
-rwxrwxrwx 1 adminrig lifelabs      351 Mar 25 23:23 454DataProcessingDir.xml
-rwxrwxrwx 1 adminrig lifelabs      702 Mar 25 23:29 454QualityFilterMetrics.csv
-rwxrwxrwx 1 adminrig lifelabs     1609 Mar 25 23:29 454QualityFilterMetrics.txt
-rwxrwxrwx 1 adminrig lifelabs    13496 Mar 25 23:29 454RuntimeMetricsAll.csv
-rwxrwxrwx 1 adminrig lifelabs    26967 Mar 25 23:29 454RuntimeMetricsAll.txt
-rwxrwxrwx 1 adminrig lifelabs     1675 Mar 25 14:48 dataRunParams.xml
-rwxrwxrwx 1 adminrig lifelabs     7134 Mar 25 23:29 gsRunProcessor.log

ไดเรกทอรีเป้าหมายติดตั้งผ่าน SMB และฉันพยายามที่จะคัดลอกชุดไฟล์ทั้งหมดในครั้งเดียว

[tmark@dexter JR09141045 target_dir]$ cd /target_dir
[tmark@dexter JR09141045 target_dir]$ cp -p /source_dir/* ./
cp: preserving times for `./454AllControlMetrics.csv': Operation not permitted
cp: preserving times for `./454AllControlMetrics.txt': Operation not permitted
cp: preserving times for `./454BaseCallerMetrics.csv': Operation not permitted
cp: preserving times for `./454BaseCallerMetrics.txt': Operation not permitted
cp: preserving times for `./454DataProcessingDir.xml': Operation not permitted
cp: preserving times for `./454QualityFilterMetrics.csv': Operation not permitted
cp: preserving times for `./454QualityFilterMetrics.txt': Operation not permitted
cp: preserving times for `./454RuntimeMetricsAll.csv': Operation not permitted
cp: preserving times for `./454RuntimeMetricsAll.txt': Operation not permitted
cp: preserving times for `./dataRunParams.xml': Operation not permitted
cp: preserving times for `./gsRunProcessor.log': Operation not permitted

[tmark@dexter JR09141045 target_dir]$ ls -l
total 71264

-rwxrwxrwx 1 tmark 1008 19768377 Mar 25 23:29 1.TCA.454Reads.fna
-rwxrwxrwx 1 tmark 1008 53093396 Mar 25 23:29 1.TCA.454Reads.qual
-rwxr-xr-x 1 tmark 1008     1035 Apr  1  2015 454AllControlMetrics.csv
-rwxr-xr-x 1 tmark 1008     2657 Apr  1  2015 454AllControlMetrics.txt
-rwxr-xr-x 1 tmark 1008     4607 Apr  1  2015 454BaseCallerMetrics.csv
-rwxr-xr-x 1 tmark 1008    14518 Apr  1  2015 454BaseCallerMetrics.txt
-rwxr-xr-x 1 tmark 1008      351 Apr  1  2015 454DataProcessingDir.xml
-rwxr-xr-x 1 tmark 1008      702 Apr  1  2015 454QualityFilterMetrics.csv
-rwxr-xr-x 1 tmark 1008     1609 Apr  1  2015 454QualityFilterMetrics.txt
-rwxr-xr-x 1 tmark 1008    13496 Apr  1  2015 454RuntimeMetricsAll.csv
-rwxr-xr-x 1 tmark 1008    26967 Apr  1  2015 454RuntimeMetricsAll.txt
-rwxr-xr-x 1 tmark 1008     1675 Apr  1  2015 dataRunParams.xml
-rwxr-xr-x 1 tmark 1008     7134 Apr  1  2015 gsRunProcessor.log

โปรดทราบว่าเวลาและการอนุญาตในสองไฟล์แรกนั้นเหมือนกับในไดเรกทอรีต้นทาง แต่จะแตกต่างกันสำหรับไฟล์ที่เหลือ

ดังนั้นดูเหมือนว่าฉันสามารถคัดลอกบางไฟล์และรักษาสิทธิ์และเวลาของพวกเขาแต่ไม่ใช่กับไฟล์อื่น ๆแม้ว่าไฟล์ต้นฉบับทั้งหมดมาจากที่เดียวกันและมีสิทธิ์เดียวกันและ (มากหรือน้อย) และฉัน ' m คัดลอกพวกเขาทั้งหมดไปยังไดเรกทอรีเดียวกันในเวลาเดียวกัน - และด้วย umask เดียวกัน ฯลฯ

ดังนั้นทำไมฉันสามารถรักษาเวลาสำหรับบางคน แต่ไม่ใช่ทุกไฟล์?

ฉันยินดีที่จะให้รายละเอียดเพิ่มเติม (umask, Linux version, smb.conf ฯลฯ ฯลฯ ) ยกเว้นว่าฉันไม่เข้าใจว่ารายละเอียดเหล่านั้นสามารถอธิบายสิ่งที่ฉันเห็นได้อย่างไรเนื่องจากพวกเขาควรจะอยู่ที่นี่อย่างต่อเนื่อง


คุณพูดถึง SMB นี่เป็น CIFS ที่ใช้ร่วมกันกับเซิร์ฟเวอร์ windows หรือไม่ จากเน็ตแอพ เรื่องนี้ก็มีความสำคัญเช่นกัน ตัวอย่างเช่นเน็ตแอพมีโหมดแชร์ / มิกซ์ต่างกัน ในความเป็นจริงมีความเป็นไปได้มากมายขึ้นอยู่กับสิ่งที่คุณแบ่งปัน และในขณะที่คุณผ่านไปเคอร์เนลเวอร์ชันและตัวเลือกเมานท์ที่คุณใช้บนไคลเอนต์
แอรอน

คุณสามารถแชร์รายละเอียดการเมานต์สำหรับแซมบ้านี้แบ่งปันได้อย่างไร แค่ต้องการตรวจสอบว่าคุณใช้ "noatime" ในขณะที่ทำการติดตั้งหรือไม่
PKumar

ดีกว่าที่จะใช้ rsync insead ของ cp
PKumar

คำตอบ:


8

บน Unix การประทับเวลาไม่สามารถรักษาไว้ในไฟล์ที่ผู้ใช้ไม่ได้เป็นเจ้าของ

นี่คือเหตุผลที่คำสั่งต่อไปนี้ล้มเหลวถ้าfile1และfile2เป็นเจ้าของโดยผู้ใช้ที่แตกต่างกันในกรณีที่file2มีอยู่แล้ว:

cp -p file1 file2

ดูเหมือนว่ามันเป็นกรณีของคุณเพราะไฟล์ที่มาเป็นเจ้าของและไฟล์เป้าหมายเป็นเจ้าของโดยadminrigtmark

ไม่แน่ใจว่ามีวิธีแก้ปัญหาเนื่องจากการบังคับด้วย-fไม่สามารถแก้ปัญหาได้

หากเป็นไปได้ให้ลองเปลี่ยนความเป็นเจ้าของไฟล์เป้าหมาย ...


2
ขอบคุณ krisFR อย่างไรก็ตามไฟล์ต้นฉบับที่ถูกคัดลอกด้วยสิทธิ์ที่ถูกต้องและการประทับเวลามีความเป็นเจ้าของเช่นเดียวกับไฟล์ที่สร้างข้อผิดพลาด ในความเป็นจริงไฟล์ต้นฉบับทั้งหมดมีสิทธิ์ที่ชัดเจนเหมือนกันและพวกเขาทั้งหมดเป็นผู้ดูแลระบบดังนั้นจึงดูเหมือนว่าเจ้าของไม่สามารถอธิบายสิ่งที่ฉันเห็นได้อย่างสมบูรณ์ - ไม่ควรคัดลอกไฟล์ใด ๆ ด้วยสิทธิ์และการประทับเวลา
tmark

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