จะแสดงรายการไฟล์โดยเจ้าของไฟล์ในคำสั่ง Unix ได้อย่างไร


15

ฉันต้องการแสดงรายการไฟล์ทั้งหมดของ WD ที่ฉันจัดเรียงตามตัวอักษรตามชื่อเจ้าของไฟล์ ls มีบางอย่างสำหรับสิ่งนี้หรือไม่?

คำตอบ:


13

วิธีการแก้ปัญหาที่ยอมรับ:

ls -l | sort -k3,3

โลน 3 (ดังใน '-k3') จะบอกsortให้ใช้คอลัมน์ 3 ต่อท้ายบรรทัดเพื่อเรียงลำดับ วิธีนี้ช่วยให้คุณสามารถเรียงลำดับขั้นสูงกว่าได้เช่นls -l | sort -k3,3 -rnk5,5ซึ่งจะเรียงลำดับไฟล์ของคุณตามชื่อผู้ใช้ก่อนแล้วตามขนาดใหญ่ที่สุดก่อน

man sortและเช่นเคยสำหรับข้อมูลเพิ่มเติมทำงาน


เป็นการเรียกซ้ำหรือไม่

@Michel: ไม่ แต่ฉันไม่คิดว่าเป็นที่ต้องการโดย OP
bukzor

5

ฉันจะใช้ find -printf "%u %h/%f\n" | sort


find: bad option -printf
Martin Carpenter

find --version find (GNU findutils) 4.4.2 Copyright (C) 2007 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Eric B. Decker, James Youngman, and Kevin Dalley. Built using GNU gnulib version e5573b1bad88bfabcda181b9e0125fb0c52b7d3b Features enabled: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION FTS() CBO(level=0)

1

ฉันไม่คิดว่ามีอะไรในตัว แต่คุณสามารถรวมแฮ็คเข้าด้วยกัน:

find . -ls | sort -k5

สิ่งนี้ทำงานได้เนื่องจากในการติดตั้งของฉันคอลัมน์ที่ห้า ( -k5) ของเอาต์พุตจากfindนั้นคือชื่อผู้ใช้ เห็นได้ชัดว่านี่ไม่ใช่พกพา


ฉันจำเป็นต้องใช้ด้วยfindหรือไม่ ฉันลองls -l | sort -k3แล้วฉันคิดว่ามันใช้ได้

find ยังประมวลผลไฟล์และโฟลเดอร์ในไดเรกทอรีย่อย

1

ls -l | awk '{print $3"\t\t"$9}' | sortก็จะทำเช่นนั้น คอลัมน์แรกคือชื่อผู้ใช้คอลัมน์ที่สองคือชื่อไฟล์ / ไดเรกทอรี:

[ 09:20 jon@host /home ]$ ls -l | awk '{print $3"\t\t"$9}' | sort

bettina         bettina
caldavd         caldavd
davical_app     postgres
davical_dba     davical_dba
istat           istat
jared           jared
jason           jason
jon             jon
jon             repo
root            lost+found
root            SCN_RepositoryB.tar.gz
tomcat          tomcat

ซึ่งจะแสดงเฉพาะชื่อไฟล์ / dir (เรียงลำดับตามเจ้าของ):

[ 09:24 jon@host /home ]$ ls -l | awk '{print $3"\t\t"$9}' | sort | awk '{print $2}'

bettina
caldavd
postgres
davical_dba
istat
jared
jason
jon
repo
lost+found
SCN_RepositoryB.tar.gz
tomcat

และนี่จะแสดงให้พวกเขาเรียงลำดับ แต่ในบรรทัดเดียว:

[ 09:26 jon@host /home ]$ ls -l | awk '{print $3"\t\t"$9}' | sort | awk '{print $2}' | tr "\n" " "
bettina caldavd postgres davical_dba istat jared jason jon repo lost+found SCN_RepositoryB.tar.gz tomcat

0
ls -l | sort -k3

ไม่จำเป็นต้องระบุ3หลังจาก -k3

kracekumar@python-lover:~$ ls -l /tmp | sort -k3  
total 36
drwx------ 2 gdm        gdm        4096 2011-10-14 08:36 orbit-gdm
drwx------ 2 gdm        gdm        4096 2011-10-14 08:36 pulse-    2L9K88eMlGn7
drwx------ 2 kracekumar kracekumar 4096 2011-10-14 08:36 keyring-4O5hSc
drwx------ 2 kracekumar kracekumar 4096 2011-10-14 08:36 pulse-SBBBfzrceWvC
drwx------ 2 kracekumar kracekumar 4096 2011-10-14 08:36 ssh-UkESZoNj1595
drwx------ 2 kracekumar kracekumar 4096 2011-10-14 08:36 virtual-kracekumar.5D8Mlv
drwx------ 2 kracekumar kracekumar 4096 2011-10-14 08:43 orbit-kracekumar
drwx------ 2 root       root       4096 2011-10-14 08:36 pulse-PKdhtXMmr18n
drwxr-xr-x 3 www-data   www-data   4096 2011-10-14 08:36 www-data-temp-aspnet-0
kracekumar@python-lover:~$ ls -l /tmp | sort -k3,3
total 36
drwx------ 2 gdm        gdm        4096 2011-10-14 08:36 orbit-gdm
drwx------ 2 gdm        gdm        4096 2011-10-14 08:36 pulse-2L9K88eMlGn7
drwx------ 2 kracekumar kracekumar 4096 2011-10-14 08:36 keyring-4O5hSc
drwx------ 2 kracekumar kracekumar 4096 2011-10-14 08:36 pulse-SBBBfzrceWvC
drwx------ 2 kracekumar kracekumar 4096 2011-10-14 08:36 ssh-UkESZoNj1595
drwx------ 2 kracekumar kracekumar 4096 2011-10-14 08:36 virtual-kracekumar.5D8Mlv
drwx------ 2 kracekumar kracekumar 4096 2011-10-14 08:43 orbit-kracekumar
drwx------ 2 root       root       4096 2011-10-14 08:36 pulse-PKdhtXMmr18n
drwxr-xr-x 3 www-data   www-data   4096 2011-10-14 08:36 www-data-temp-aspnet-0
kracekumar@python-lover:~$
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.