Linux

Linux 只列出目錄名稱、排除一般檔案教學與範例

介紹如何在 Linux 中以 lsfind 等指令,只顯示目錄、不顯示檔案的各種方法。

在 Linux 的命令列中,若要列出目前工作目錄之下的所有子目錄名稱,有好多種做法,以下是各種方式的使用教學與範例。

ls 指令

ls 指令列出目錄是簡單的方式:

# 只列出目錄
ls -d */
NetworkManager/
X11/
acpi/
[略]

或是將 ls 的輸出搭配 grep 篩選出目錄:

# 只列出目錄
ls -F | grep \/$
NetworkManager/
X11/
acpi/
[略]

或是列出詳細的屬性後,搭配 grep 篩選:

# 只列出目錄
ls -l | grep ^d
drwxr-xr-x 3 root root       4096 Jun 26  2019 NetworkManager
drwxr-xr-x 6 root root       4096 Feb 16 17:13 X11
drwxr-xr-x 3 root root       4096 Jun 26  2019 acpi
[略]

find 指令

find 指令是一個功能強大的 Linux 工具,也可以用來列出目錄:

# 只列出目錄
find . -maxdepth 1 -type d
.
./gtk-3.0
./netplan
./update-notifier
[略]

這裡的 -maxdepth 1 參數是用來限制 find 只列出第一層(也就是目前這一層)的子目錄,若沒有加上這一個參數,就會以遞迴的方式列出所有的子目錄;-type d 是讓 find 僅列出目錄。

其他指令

echo 指令也可以用來列出目錄,只不過它在輸出時會將所有的目錄串成一行:

# 只列出目錄
echo */
NetworkManager/ X11/ acpi/ alternatives/ apm/ apparmor.d/ apparmor/ apport/ apt/ bash_completion.d/ binfmt.d/ byobu/ ca-certificates/ calendar/ cloud/ console-setup/ cron.d/ cron.daily/ cron.hourly/ cron.monthly/ cron.weekly/ cryptsetup-initramfs/ dbus-1/ default/ depmod.d/ dhcp/ dnsmasq.d-available/ dnsmasq.d/ dpkg/ fonts/ glvnd/ groff/ grub.d/ gss/ gtk-2.0/ gtk-3.0/ init.d/ initramfs-tools/ iproute2/ iscsi/ kernel/ landscape/ ld.so.conf.d/ ldap/ libibverbs.d/ libnl-3/ logcheck/ logrotate.d/ lvm/ mdadm/ modprobe.d/ modules-load.d/ netplan/ network/ networkd-dispatcher/ newt/ opt/ pam.d/ perl/ pm/ polkit-1/ pollinate/ profile.d/ python/ python2.7/ python3.6/ python3/ rc0.d/ rc1.d/ rc2.d/ rc3.d/ rc4.d/ rc5.d/ rc6.d/ rcS.d/ rsyslog.d/ security/ selinux/ sensors.d/ skel/ ssh/ ssl/ sudoers.d/ sysctl.d/ sysstat/ systemd/ terminfo/ tmpfiles.d/ udev/ ufw/ update-manager/ update-motd.d/ update-notifier/ vim/ vmware-tools/ xdg/ zsh/

printf 指令跟 echo 類似,不過輸出格式可自訂:

# 只列出目錄
printf '%s\n' */
NetworkManager/
X11/
acpi/
[略]

參考資料:nixCraftLinOxide

Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

9 個月 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

9 個月 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

9 個月 ago

Windows 使用 TPM 虛擬智慧卡保護 SSH 金鑰教學與範例

本篇介紹如何在 Windows...

10 個月 ago

Linux 以 Shamir’s Secret Sharing 分割保存金鑰教學與範例

介紹如何在 Linux 中使用...

11 個月 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

11 個月 ago