fti*_*sem 2 linux unix command-line ls directory-listing
我想列出当前路径中和下方的所有目录和子目录。由于我只想显示目录,我想出了以下命令:
find -type d -exec ls -d1 {} \; | cut -c 3-
Run Code Online (Sandbox Code Playgroud)
例如,这会打印出来
webphone
music
finance
finance/banking
finance/realestate
finance/trading
finance/other
finance/moneylending
finance/insurance
webradio
webtv
Run Code Online (Sandbox Code Playgroud)
我现在遇到的问题是,该目录finance已列出。finance不包含任何文件,只包含您在上面看到的子目录。我想要实现的是以下输出:
webphone
music
finance/banking
finance/realestate
finance/trading
finance/other
finance/moneylending
finance/insurance
webradio
webtv
Run Code Online (Sandbox Code Playgroud)
在此列表finance中未列出目录。因此,我需要您提供有关如何过滤不包含文件(仅包含子目录)的目录的建议。
这是一种方法:列出所有常规文件,去除文件基本名称,并删除重复项。
find . -type f | sed 's!/[^/]*$!!' | sort -u
Run Code Online (Sandbox Code Playgroud)
如果你想剥离领先./:
find . -type f | sed -e 's!/[^/]*$!!' -e 's!^\./!!' | sort -u
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15374 次 |
| 最近记录: |