ฉันกำลังย้ายไดเรกทอรีบ้านของฉันจากระบบเก่าไปยังใหม่และ tarball ที่ฉันทำมีทุกอย่างรวมถึงไฟล์ที่ซ่อนเช่น. bashrc อย่างไรก็ตามเมื่อฉันย้ายเนื้อหาของ tarball ที่ไม่ได้แพ็ค (ซึ่งอยู่ใน / tmp) ไปยังโฮมไดเร็กตอรี่ใหม่ของฉันไฟล์ที่ซ่อนจะไม่คัดลอก ( mv /tmp/home/rcook/* /home/rcook/
) ฉันจะทำให้ mv ย้ายได้อย่างไร
อันที่จริงฉันคิดว่าปัญหาไม่ได้อยู่ที่ mv แต่มีปัญหาของการทุบตี ถ้าฉันทำสิ่งนี้:
mkdir a
mkdir b
touch a/.foo
touch a/bar
mv a/* b/
ls -a a/ b/
ฉันเห็นสิ่งนี้:
a/:
. .. .foo
b/:
. .. bar
a/.foo
ไม่ได้ย้าย ดังนั้นฉันจะรับ * wildcard เพื่อค้นหาไฟล์ที่ซ่อนได้อย่างไร
ใช่ฉันคิดว่าฉันสามารถแตก tarball ลงในโฮมไดเร็กตอรี่ของฉันได้โดยตรง แต่ tarball นั้นแตกออกมาhome/rcook/...
และฉันต้องการแน่ใจว่าฉันเขียนทับไฟล์ใหม่.bashrc
และอื่น ๆ ด้วยเวอร์ชั่นเก่าที่ปรับแต่งแล้วและรู้วิธีค้นหาและย้ายไฟล์ที่ซ่อนอยู่ เป็นทักษะที่คุ้มค่า ข้อเสนอแนะ?
mv src/.* dest/
คำตอบบางอย่างขอแนะนำให้ทำสิ่งที่ชอบ อย่างไรก็ตามฉันลองมันในไดเรกทอรีทดสอบและพบข้อผิดพลาด เริ่มต้นด้วย:
rcook$ ls -a a/ b/
a/:
. .. bar .foo
b/:
. ..
rcook$ mv a/.* b/
mv: cannot move 'a/.' to 'b/.': Device or resource busy
mv: cannot remove 'a/..': Is a directory
rcook$ ls -a a/ b/
a/:
. .. bar
b/:
. .. .foo
ผมทำอะไรผิดหรือเปล่า?