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

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


3
ฉันจะ“ เชื่อมโยง” symlink ที่ใช้งานไม่ได้อีกครั้งได้อย่างไร
ฉันมีแผนผังไดเรกทอรีที่มีลิงก์สัญลักษณ์ไปยังไฟล์ภายใต้/home... อย่างไรก็ตามฉันย้าย/homeไป/mnt/homeแล้วและต้องการวิธี "เชื่อมโยง" ลิงก์ทั้งหมดใหม่ มีฟังก์ชั่นดังกล่าวอยู่หรือฉันต้องเขียนสคริปต์เพื่อทำเช่นนั้น? ตัวอย่างเช่นฉันมีสิ่งต่อไปนี้: [root@trees ~]# ls -l /mnt/home/someone/something total 4264 lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 a -> /home/someone/someotherthing/a lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 b -> /home/someone/someotherthing/b lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 c -> /home/someone/someotherthing/c lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 …

2
pwd ที่ไม่มี symlinks
ถ้าฉันpwdสังเกตเห็นว่ามันใช้ symlink อะไรก็ตามที่ฉันเคยเข้าไปในไดเรกทอรีปัจจุบัน ฉันสามารถบอกให้ฉันทราบไดเรกทอรี "ของจริง" ที่ฉันอยู่หรือไม่ ... คือเส้นทางจากรูทไปยังไดเรกทอรีปัจจุบันของฉันโดยไม่ใช้ symlink ใด ๆ
54 symlink 

2
สร้าง symlink - เขียนทับหากมีอยู่
ฉันต้องการลบข้อมูล/path/to/data/folder/month/date/hour/minute/fileและเชื่อมโยงไปยัง/path/to/recent/fileและทำสิ่งนี้โดยอัตโนมัติทุกครั้งที่มีการสร้างไฟล์ สมมติว่าฉันจะไม่ทราบล่วงหน้าถ้า/path/to/recent/fileมีอยู่ฉันจะสร้างมันขึ้นมาอย่างไร (ถ้าไม่มี) หรือแทนที่ (ถ้ามี) ฉันแน่ใจว่าฉันสามารถตรวจสอบว่ามันมีอยู่แล้วทำการลบ symlink แต่ฉันสงสัยว่ามีคำสั่งง่ายๆที่จะทำสิ่งที่ฉันต้องการในขั้นตอนเดียว
54 bash  symlink 

5
การพิจารณาว่าไฟล์เป็นฮาร์ดลิงก์หรือลิงก์สัญลักษณ์?
ฉันกำลังสร้างเชลล์สคริปต์ที่จะนำชื่อไฟล์ / พา ธ ไปยังไฟล์และตรวจสอบว่าไฟล์นั้นเป็นลิงก์สัญลักษณ์หรือฮาร์ดลิงก์ สิ่งเดียวคือฉันไม่ทราบวิธีการดูว่าพวกเขาเป็นลิงค์ยาก ฉันสร้างไฟล์ 2 ไฟล์หนึ่งไฟล์เป็นฮาร์ดลิงก์และอีกหนึ่งลิงก์สัญลักษณ์เพื่อใช้เป็นไฟล์ทดสอบ แต่ฉันจะทราบได้อย่างไรว่าไฟล์เป็นฮาร์ดลิงก์หรือสัญลักษณ์ภายในเชลล์สคริปต์ นอกจากนี้ฉันจะค้นหาพาร์ติชันปลายทางของลิงก์สัญลักษณ์ได้อย่างไร สมมุติว่าฉันมีไฟล์ที่เชื่อมโยงไปยังพาร์ติชันอื่นฉันจะค้นหาพา ธ ไปยังไฟล์ต้นฉบับนั้นได้อย่างไร

7
ค้นหาจุดหมายปลายทางของ symlink เท่านั้น
เพื่อใช้ในเชลล์สคริปต์ฉันกำลังมองหา commandline-way เพื่อรับปลายทางของลิงก์สัญลักษณ์ ที่ใกล้เคียงที่สุดที่ผมได้มาเพื่อให้ห่างไกลซึ่งเอาท์พุทstat -N src src -> dstแน่นอนว่าฉันสามารถแยกเอาท์พุทและรับได้dstแต่ฉันสงสัยว่ามีวิธีการรับปลายทางโดยตรงหรือไม่

3
วิธีเปลี่ยนความเป็นเจ้าของจากลิงก์สัญลักษณ์?
ฉันกำลังประสบปัญหาบางอย่างกับการสร้างลิงค์นุ่ม ๆ ต่อไปนี้เป็นไฟล์ต้นฉบับ $ ls -l /etc/init.d/jboss -rwxr-xr-x 1 askar admin 4972 Mar 11 2014 /etc/init.d/jboss การสร้างลิงก์ล้มเหลวด้วยปัญหาการอนุญาตสำหรับเจ้าของไฟล์: ln -sv jboss /etc/init.d/jboss1 ln: creating symbolic link `/etc/init.d/jboss1': Permission denied $ id uid=689(askar) gid=500(admin) groups=500(admin) ดังนั้นฉันจึงสร้างลิงก์ด้วยสิทธิ์ sudo: $ sudo ln -sv jboss /etc/init.d/jboss1 `/etc/init.d/jboss1' -> `jboss' $ ls -l /etc/init.d/jboss1 lrwxrwxrwx 1 …

6
มีข้อเสียคือการลบลิงก์สัญลักษณ์ที่เสียทั้งหมดในระบบหรือไม่?
ฉันกำลังเรียกใช้สคริปต์ที่วนซ้ำไฟล์ทั้งหมดในระบบ Linux ของฉันและสร้างข้อมูลเมตาเกี่ยวกับพวกเขาและมันเกิดข้อผิดพลาดเมื่อกดลิงค์สัญลักษณ์ที่เสียหาย ฉันใหม่ถึง * ระวัง แต่ฉันได้รับแนวคิดหลักที่อยู่เบื้องหลังการเชื่อมโยงไฟล์และการเชื่อมโยงที่ขาดหายไปมีอยู่จริง เท่าที่ฉันรู้พวกเขาก็เหมือนขยะในท้องถนน สิ่งที่โปรแกรมที่ฉันลบไม่ฉลาดพอที่จะบอกว่าตัวจัดการแพคเกจนั้นมีอยู่และเป็นของมันหรือสิ่งที่ทิ้งไว้ในการอัปเกรด ในตอนแรกฉันเริ่มปรับแต่งสคริปต์ที่ฉันกำลังจะข้ามไปจากนั้นฉันก็คิดว่า 'เราสามารถลบมันได้ตลอดเวลาเมื่อเราอยู่ที่นี่ ... ' ฉันใช้Ubuntu 14.04 (Trusty Tahr) ฉันไม่เห็นเหตุผลใด ๆ ที่จะทำ แต่ก่อนที่ฉันจะดำเนินการเรื่องนี้ผ่านระบบการพัฒนาของฉันมีเหตุผลใด ๆ ที่จริง ๆ แล้วนี่อาจเป็นความคิดที่แย่มาก? symlink ที่ใช้งานไม่ได้นั้นมีจุดประสงค์บางอย่างที่ฉันไม่ทราบหรือไม่?
46 symlink 

5
ฉันจะลบลิงค์สัญลักษณ์ทั้งหมดด้วยเป้าหมายพิเศษได้อย่างไร
ด้วยคำสั่ง: ls -la * ฉันสามารถแสดงลิงก์สัญลักษณ์ทั้งหมดของฉันได้ ฉันจะลบลิงก์สัญลักษณ์ทั้งหมดที่เชื่อมโยงไปยังโฟลเดอร์พิเศษได้อย่างไร ตัวอย่างเช่น: ในไดเรกทอรีของusr/local/binฉันฉันมีรายการต่อไปนี้: lrwxrwxrwx 1 root root 50 Apr 22 14:52 allneeded -> /usr/local/texlive/2011/bin/x86_64-linux/allneeded lrwxrwxrwx 1 root root 47 Apr 22 14:52 amstex -> /usr/local/texlive/2011/bin/x86_64-linux/amstex lrwxrwxrwx 1 root root 24 Apr 23 19:09 arara -> /home/marco/.arara/arara ตอนนี้ฉันต้องการลบลิงก์ทั้งหมดที่มีเส้นทาง /usr/local/texlive/
43 wildcards  symlink  rm 

2
ฉันจะคัดลอกลิงก์สัญลักษณ์ได้อย่างไร
ฉันมีลิงก์สัญลักษณ์ไปยังไฟล์ในไดเรกทอรีเดียว ฉันต้องการลิงค์เดียวกันในไดเรกทอรีอื่น ฉันจะคัดลอกลิงก์สัญลักษณ์ได้อย่างไร ฉันพยายาม cp ลิงก์สัญลักษณ์ แต่สิ่งนี้คัดลอกไฟล์ที่ชี้ไปที่แทนที่จะเป็นลิงก์สัญลักษณ์เอง
41 centos  symlink  cp 

4
เปลี่ยนการอนุญาตสำหรับลิงก์สัญลักษณ์
ฉันมี symlink ด้วยสิทธิ์เหล่านี้: lrwxrwxrwx 1 myuser myuser 38 Aug 18 00:36 npm -> ../lib/node_modules/npm/bin/npm-cli.js* symlink ตั้งอยู่ในไฟล์. tar.gz ตอนนี้เมื่อฉันคลายไฟล์เก็บถาวร tar.gz โดยใช้ maven symlink จะใช้ไม่ได้อีกต่อไป ฉันจึงพยายามสร้าง symlink ขึ้นใหม่ ก่อนอื่นฉันจะสร้าง symlink โดยใช้lnแต่ฉันจะตั้งค่าการอนุญาตเหมือนกับ symlink ดั้งเดิมได้อย่างไร?
37 symlink  chmod 

8
อะไรคือความแตกต่างระหว่างฮาร์ดลิงก์และไฟล์?
เชื่อมโยงยากที่ถูกกำหนดให้เป็นตัวชี้ไปยัง inode ลิงค์อ่อนยังเป็นที่รู้จักในฐานะผู้เชื่อมโยงสัญลักษณ์ถูกกำหนดให้เป็นไฟล์ชี้อิสระเพื่อการเชื่อมโยงอื่นโดยไม่มีข้อ จำกัด ของการเชื่อมโยงอย่างหนัก อะไรคือความแตกต่างระหว่างไฟล์และฮาร์ดลิงก์? ฮาร์ดลิงก์ชี้ไปที่ไอโหนดดังนั้นไฟล์คืออะไร รายการ inode ตัวเอง? หรือไอโหนดที่มีฮาร์ดลิงก์? สมมติว่าฉันสร้างไฟล์ด้วยการสัมผัส แล้วรายการ inode ถูกสร้างขึ้นในตาราง inode และฉันสร้างฮาร์ดลิงก์ซึ่งมีหมายเลขไอโหนดเดียวกันกับไฟล์ ดังนั้นฉันจึงสร้างไฟล์ใหม่ หรือไฟล์ถูกกำหนดเป็น inode หรือไม่?

2
ค้นหาการใช้งานด้วย -L
ฉันมี link -> file ฉันทำ find -L . -name 'link' และรับ ./link ทำไมถึงเป็นอย่างนั้น? คนค้นหาพูดว่า: -L: ทำตามลิงก์สัญลักษณ์ เมื่อพบการตรวจสอบหรือพิมพ์ข้อมูลเกี่ยวกับไฟล์ข้อมูลที่นำมาใช้จะต้องนำมาจากคุณสมบัติของไฟล์ที่จุดเชื่อมโยงไม่ใช่จากลิงค์ตัวเอง (เว้นแต่จะเป็นลิงก์สัญลักษณ์แบบย่อหรือค้นหาไม่สามารถตรวจสอบไฟล์ได้ จุดเชื่อมโยง)
34 find  symlink 

4
ฉันจะทราบได้อย่างไรว่าฉันอยู่ในตำแหน่ง symlink จากบรรทัดคำสั่ง
สมมติว่าฉันมีโฟลเดอร์: cd /home/cpm135/public_html และสร้างลิงก์สัญลักษณ์ ln -s /var/lib/class . ต่อมาฉันอยู่ในไดเรกทอรีนั้น: cd /home/cpm135/public_html/class pwdจะบอกฉันฉันอยู่ใน/home/cpm135/public_html/class มีวิธีใดบ้างที่จะรู้ว่าฉันเป็น "จริง ๆ " เข้าไป/var/lib/class? ขอบคุณ

1
ฉันจะเข้าถึงไดเรกทอรีภายนอก chroot จากภายในได้อย่างไร?
ฉันมีผู้ใช้ที่ chrooted ไปยังไดเรกทอรีบ้านของเธอ แต่ฉันต้องการให้เธอสามารถจัดการไฟล์ภายใน/var/wwwได้เช่นกัน เช่นนี้ฉันทำสิ่งต่อไปนี้: root@server:/home/username# ln -s /var/www www root@server:/home/username# cd www root@server:/home/username/www# chown username:username * อย่างไรก็ตามเมื่อฉันพยายามเปิด/wwwด้วย FileZilla มันจะส่งคืน "ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว" ฉันเห็นไดเรกทอรีที่ลิงก์ แต่ฉันไม่สามารถเข้าถึงได้ ผมทำอะไรผิดหรือเปล่า?
33 debian  symlink  chroot 

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