สำหรับภารกิจของฉันฉันต้องการแสดงรายการไฟล์ทั้งหมดในแผนผัง
ฉันต้องการเห็นพวกเขาใน Nautilus หรือ Krusader แต่โซลูชันบรรทัดคำสั่งก็น่าสนใจเช่นกัน (ในกรณีนี้ฉันจะต้องใช้ชื่อเต็มขนาดและเวลาในการแก้ไข)
สำหรับภารกิจของฉันฉันต้องการแสดงรายการไฟล์ทั้งหมดในแผนผัง
ฉันต้องการเห็นพวกเขาใน Nautilus หรือ Krusader แต่โซลูชันบรรทัดคำสั่งก็น่าสนใจเช่นกัน (ในกรณีนี้ฉันจะต้องใช้ชื่อเต็มขนาดและเวลาในการแก้ไข)
คำตอบ:
ls -alR
นั่นอาจเป็นวิธีที่ง่ายที่สุด ฉันแค่แฮ็คสคริปต์หาเพื่อให้คุณควบคุมได้ง่ายขึ้น
ls -R
ถ้าคุณไม่ต้องการรายละเอียดทั้งหมด
find /path/ -printf "%TY-%Tm-%Td\t%s\t%p\n"
คุณสามารถเล่นกับการจัดรูปแบบ printf ได้มากเท่าที่คุณต้องการ นี่เป็นโอกาสที่ดีที่คุณจะได้รับสิ่งที่จัดรูปแบบตามที่คุณต้องการซึ่งเป็นสิ่งที่ประเมินค่าไม่ได้หากคุณใช้เอาต์พุตในแอปพลิเคชันอื่น
เพิ่มเติมได้ที่: http://linux.about.com/od/commands/l/blcmdl1_find.htm
เพื่อการอ่านที่ดีขึ้นคุณสามารถไพพ์ได้ทั้งหมดผ่านcolumn
คำสั่งและมันจะปรับขนาดสิ่งต่าง ๆ โดยอัตโนมัติเพื่อให้มันเข้าแถว
find /path/ -printf "%TY-%Tm-%Td\t%s\t%p\n" | column -t
ดังที่ Oli ตอบแล้วfind
จะช่วยให้คุณสามารถค้นหาแผนผังไดเรกทอรีทั้งหมดได้:
find /path/ -printf "%TY-%Tm-%Td\t%s\t%p\n"
# Where %TY will display the mod. time year as 4 digits
# %Tm will display the mod. time month as 2 digits
# %Td will display the mod. time day as 2 digits
# %s displays the file size in bytes
# %p displays the full path name of the file
คุณอาจต้องการใช้-type f
ตัวเลือกเพื่อ จำกัด ผลลัพธ์ให้เป็นเพียงไฟล์ ถ้าคุณต้องการจับคู่รูปแบบไฟล์คุณต้องการ-name
หรือ-iname
ตัวเลือก (ตรงตามตัวพิมพ์ใหญ่และตัวพิมพ์เล็กและตัวพิมพ์เล็กตามลำดับ) อ่านfind
man page ของ man page - มีตัวเลือกมากมายที่คุณสามารถใช้เพื่อ จำกัด / ปรับปรุงการค้นหาของคุณ
และถ้าคุณคาดหวังว่าจะมีข้อมูลหลาย ๆ หน้าจอที่ถูกโยนกลับมาหาคุณอย่าลืมส่งผลให้less
คุณ
@Oli: +1 ผมเพิ่งได้เรียนรู้สิ่งใหม่ ๆ เช่นกัน column
- ไม่เคยใช้มันมาก่อน
ls
เป็นคำสั่งมาตรฐานในการแสดงรายการไฟล์ใน Ubuntu และระบบปฏิบัติการ Linux และ Unix อื่น ๆ ls
มีประโยชน์อย่างยิ่งในการเรียนรู้เพราะคุณจะพบว่ามันติดตั้งในระบบ Unix ทุกระบบที่คุณเคยพบ โดยค่าเริ่มต้นการทำงานนี้จะแสดงเฉพาะไฟล์ในไดเรกทอรีปัจจุบัน
อย่างไรก็ตาม-R
'แฟล็ก' เป็นตัวเลือกแบบเรียกซ้ำ (หมายเหตุตัวพิมพ์ใหญ่Rไม่ใช่ตัวอักษรr ) ซึ่งจะแสดงไดเรกทอรีย่อยทั้งหมดให้คุณเห็น
คุณถามถึง "รายละเอียด" ด้วย - สำหรับสิ่งนี้คุณต้องการ-l
แฟล็ก (นั่นคือตัวพิมพ์เล็ก L ไม่ใช่อันดับหนึ่ง) โปรดระวังสิ่งนี้จะให้ข้อมูลสิทธิ์การใช้ไฟล์เช่นเดียวกับขนาดไฟล์ข้อมูลเวลา / วันที่และชื่อไฟล์
หากคุณต้องการแสดงไฟล์ / โฟลเดอร์ที่ซ่อนอยู่ (เทียบเท่ากับCtrl+ Hใน Nautilus) ให้เพิ่มการ-a
ตั้งค่าสถานะ 'all'
คุณสามารถรวมธงเข้าด้วยกันเพื่อให้สิ่งที่ชอบ:
ls -lR
หากคุณเรียกใช้สิ่งนี้ในโฟลเดอร์ที่มีขนาดพอเหมาะคุณจะพบว่าสิ่งนี้ให้ผลลัพธ์ที่มีความยาวมากซึ่งจะเลื่อนหน้าจอลงอย่างรวดเร็ว ในการหลีกเลี่ยงปัญหานี้คุณสามารถ 'ไปป์' เอาท์พุทของls
ผ่านโปรแกรมที่เรียกว่าless
(ชื่อคือล้อเลียนของสิ่งที่คล้ายกันmore
ซึ่งอยู่ก่อน แต่มีคุณสมบัติเพิ่มเติม)
ls -lR | less
สิ่งนี้จะช่วยให้คุณใช้ปุ่มลูกศรขึ้น / ลงข้างๆ PageUp / Down เพื่อแสดงผลด้วยความเร็วที่สะดวกสบายยิ่งขึ้น
ใช้ Krusader:
สิ่งนี้จะช่วยให้คุณสามารถประมวลผลล็อตทั้งหมดโดยการลากไปยังพาเนลอื่น ฯลฯ
สคริปต์ Nautilusเป็นอย่างไร?
#!/bin/bash
#
# AUTHOR: (c) 2013 Glutanimate (https://askubuntu.com/users/81372)
# NAME: DirTree 0.1
# DEPENDENCIES: zenity tree (install with sudo apt-get install zenity tree)
# LICENSE: GNU GPL v3 (http://www.gnu.org/licenses/gpl.html)
#
# DESCRIPTION: Creates a directory tree at the current location. If you want you
# can filter the output by a pattern (e.g. *.avi to only include avi
# files).
TITLE=DirTree
# Get working directory
WORKINGDIR="`python -c 'import gio,sys; print(gio.File(sys.argv[1]).get_path())' $NAUTILUS_SCRIPT_CURRENT_URI`"
# Time and date
TIME=$(date +"%Y-%m-%d_%H%M%S")
# Filter pattern
zenity --question --title "$TITLE" --text "Do you want to filter by a specific file pattern?"
if [ "$?" = "1" ]
then
customtree="tree"
else
PATTERN=$(zenity --entry --title "$TITLE" --text="Please enter a file pattern (e.g. *.avi)")
if [ -z "$PATTERN" ]
then
exit
else
customtree="tree -P $PATTERN"
fi
fi
# Directory tree
$customtree "$WORKINGDIR" > "$WORKINGDIR/directorytree_$TIME.txt"
คำแนะนำในการติดตั้ง: ฉันจะติดตั้งสคริปต์ Nautilus ได้อย่างไร
ผมได้สร้างโปรแกรมพิเศษสำหรับการนี้ - สารบบ Snapshot
ซ้ำซ้ำผ่านไดเรกทอรีและจัดเก็บชื่อและขนาดของไฟล์และโฟลเดอร์ทั้งหมดที่พบในไฟล์ HTML ที่มีโครงสร้างที่เรียบร้อยซึ่งมีหน่วยงานคล้ายกับที่อยู่ในไดเรกทอรีป้อนข้อมูล
กล่าวอีกนัยหนึ่งนี่อาจเป็นคำสั่งdir /s
หรือtree /f
คำสั่งใน เวอร์ชันไฮเปอร์ลิงก์
dir
และtree
มีตัวเลือกสไตล์ DOS ดังนั้นฉันต้องถามมันจะใช้กับ Ubuntu ได้ไหม?
สิ่งนี้ยังใช้งานได้ใน Nemo
คุณสามารถใส่สิ่งเหล่านี้ลงในไฟล์. bashrc ของคุณ
function _get_tree(){ ls -alR | while read LINE; do echo $LINE | grep ":$" > /dev/null; if [ $? -eq 0 ]; then VAR=$(echo $LINE | grep ":$"| sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/' | tee /dev/tty); fi; echo $LINE | grep "^-" > /dev/null; if [ $? -eq 0 ]; then size=${#VAR}; for i in $(eval echo "{1..$size}"); do echo -n ' '; done; echo -n '..'; echo $LINE | cut -d ' ' -f9; fi; done; };
alias get_tree='_get_tree'
ตอนนี้คุณสามารถใช้คำสั่ง get_tree ภายในไดเรกทอรีใดก็ได้และมันจะแสดงลำดับชั้นทั้งหมด
ไวยากรณ์:
$ get_tree
ตัวอย่างผลลัพธ์:
.
..test.sh
|-2
..123.log
|---3
|-----4
|-5
|---6
หวังว่านี่จะช่วยได้ !!