คุณจะหาพา ธ ที่สมบูรณ์ไปยังไฟล์เพื่อใช้ในเทอร์มินัลได้อย่างรวดเร็วได้อย่างไร?


47

คุณจะหาพา ธ ที่สมบูรณ์ไปยังไฟล์เพื่อใช้ในเทอร์มินัลได้อย่างรวดเร็วได้อย่างไร?

คำตอบ:


44
readlink -f foo.bar

หรือ (ติดตั้งก่อน)

realpath foo.bar

คำตอบนี้ถูกต้องมากกว่าคำตอบที่ยอมรับ
Kunok

ls | xargs realpathสำหรับโฟลเดอร์ที่สมบูรณ์แบบ:
Pablo A

1
ข้อเสียของreadlinkมันคือมันจะทำงานแม้ว่าไฟล์จะไม่มีอยู่ สิ่งนี้สามารถทำให้เกิดข้อบกพร่องในรูปแบบที่แปลกมาก
GregRos

32

เพียงลากและวางไฟล์ในเทอร์มินัล


1
ฉันกำลังวางสิ่งนี้ไว้ที่นี่เพื่อที่ฉันจะไม่ลืมเราหวังว่ามันจะช่วยให้คุณ: D
Olivier Lalonde

ส่งคืนพา ธ "นำหน้า smb: //" สำหรับการแบ่งใช้ SMB ที่เมาท์แทนการเมานท์ที่แท้จริง
Kupiakos

@Kupiakos: สำหรับฉัน gnome-terminal แปลเส้นทางไฟล์ที่ถูกทิ้งไปอย่างมีความสุข'/home/alexcohn/.gvfs/…'
Alex Cohn

11

คำตอบที่ดีทั้งหมด นี่คือเคล็ดลับสำหรับสถานการณ์อื่น

CTRL+Lหากคุณกำลังเรียกดูไฟล์ของคุณโดยใช้หอยโข่งและคุณต้องการเส้นทางที่สมบูรณ์ของไดเรกทอรีปัจจุบันของคุณจากนั้นกด สิ่งนี้จะเปลี่ยนปุ่ม breadcrumb กลับไปที่แถบที่อยู่แบบเก่าชั่วคราวช่วยให้คุณสามารถคัดลอกเส้นทาง


... แต่นี่ยังคงเป็นsmb://สไตล์ดังนั้นจึงไม่สามารถนำกลับมาใช้ใหม่ได้ในเทอร์มินัล
Alex Cohn

ที่น่าสนใจ; บนระบบของฉัน (Ubuntu 13.10) ฉันไม่ได้รับsmb://เส้นทางสไตล์
Sicco

สิ่งที่ฉันกำลังค้นหาฉันหมายถึงเทอร์มินัลเป็นสถานที่ที่ยอดเยี่ยมสำหรับ ls แต่มีหลายครั้งที่คุณทำงานในมุมมองโฟลเดอร์ไฟล์: ')
edencorbin

3

หากเป็นไฟล์ปฏิบัติการให้เรียกใช้งาน (ในเทอร์มินัล):

$ which your_executable

ตัวอย่างเช่น: $ which ls


นี่คือคำตอบที่ฉันกำลังมองหา
Sharjeel Ahmed

1

นอกเหนือจากการลากไอคอนมีสองสามวิธีในการรับเส้นทางแบบเต็มโดยไม่มีหอยโข่ง (หรือ thunar, konqueror, et al.) จากนั้นคุณจะคลิกสามครั้งหรือคลิกแล้วลากและคัดลอกอาจบันทึกสิ่งนี้ไว้ในผู้จัดการคลิปบอร์ดของคุณ * และวางในตำแหน่งที่คุณต้องการ
(pastie, klipper, glippy, glipper, รำลึก)

  • คุณสามารถใช้findในไดเรกทอรีด้านบนไฟล์ของคุณ (หากคุณไม่ทราบว่าอยู่ที่ไหนให้เริ่มจากที่เชลล์วางคุณ [โดยทั่วไป] ที่ด้านบนของโฮมไดเร็กตอรี่ของคุณ)
    find . | egrep filename

  • คุณสามารถใช้locateเพื่อรับชื่อไฟล์ (เรียกใช้sudo updatedbหากยังไม่ได้ดำเนินการเมื่อเร็ว ๆ นี้)

ตัวอย่างที่เป็นจริงมากขึ้นของการใช้การค้นหาจะเป็นอย่างไร

$ find | egrep askubuntu | grep txt
./askubuntu-temp.txt
./drDocuments/web/meta.askubuntu.txt
./other/stuff/askubuntu.txt.iteration.1
./other/stuff/askubuntu.txt.iteration.2
[...]

หากต้องการตัดสิ่งที่คุณไม่ชอบออกเช่น:

find | egrep askubuntu | grep txt | egrep -v iteration
find | egrep askubuntu | grep txt | egrep -v 'iteration|meta|other'

loc จะใช้วิธีเดียวกันแม้ว่า grep มักจะจำเป็นมากกว่า:

locate myfile | egrep home | egrep -v 'mozilla|cache|local|bin|\.pyc|test' | grep \.py

นี่ไม่ใช่วิธีที่มีประสิทธิภาพที่สุดในการพิมพ์ แต่โดยปกติถ้าฉันทำแฟ้มหาย



0

หากคุณเพียงคัดลอกไฟล์ใน Nautilus เส้นทางแบบเต็มจะถูกคัดลอก
จากนั้นวางลงในเครื่อง เพียงแค่วางคุณจะได้รับ:

file:///home/juan/2017/agenda20170101.html

หากคุณคลิกขวาและเลือก "วางชื่อไฟล์" คุณจะได้รับ:

'/home/juan/2017/agenda20170101.html'

พร้อมคำพูดตามที่แสดง
สิ่งนี้แตกต่างจาก Windows ซึ่งคัดลอกเนื้อหาไฟล์แทนชื่อ

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