AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[tree](unix)

Martin Hope
Ray Andrews
Asked: 2024-03-02 01:02:16 +0800 CST

带有“sort=size”的树命令似乎不完美

  • 9

我正在尝试按大小排序:

% tree -axCF --du --sort=size | grep -e '/$' 

├── [    8658884]  2022-10-09-backup/
├── [    5923934]  f24-01-22-backup/
├── [    5384825]  e2023-01-19-backup/
├── [    3627525]  h24-01-22-npanelize-nselect/
├── [    2162140]  b2022-12-18-backup/
├── [    1255661]  a2022-12-12-backup/
├── [     996252]  2021-08-12-backup/
├── [     647677]  2022-11-20-backup/
├── [     133361]  Test/
├── [      95801]  Boneyard/
├── [       1024]  g24-01-22-backup/         < Ooops
├── [      16031]  Misc/
├── [       1024]  Temp/                     < Ooops      
├── [     449317]  Znt/
│   ├── [     158892]  Boneyard/
│   └── [     199717]  VirginN-functions/
│       ├── [      34739]  backup.1/       < Nothing right in this dir
│       ├── [      29896]  Source/
│       ├── [      35481]  Text/
│       └── [      98577]  virgin/

...正如我们所见,情况还不错,但是存在一些异常情况。这有什么原因吗?我能做点什么吗?

顺便说一句,“grep”是因为,AFAICT,“tree”不会显示目录内容大小,即使您使用“--du”,除非您也显示所有文件(不能使用“-d”),因为我不想显示文件,所以我使用 grep 来过滤它们。这看起来很奇怪,但是确实如此。

tree
  • 1 个回答
  • 105 Views
Martin Hope
CW Holeman II
Asked: 2023-06-01 22:26:33 +0800 CST

树形显示子目录中的 hw、hw.cpp 和 hw.cpp2

  • 5

我想tree在子目录中显示 hw 文件,如下所示:

.
├── exp
│   └── hw
├── src
│   └── hw.cpp2
└── tmp
    └── hw.cpp

$ /usr/bin/tree --noreport .显示所有文件:

.
├── exp
│   ├── hi
│   └── hw
├── src
│   ├── hi.cpp2
│   └── hw.cpp2
├── ssbuild.bash
├── sslogin.bash
└── tmp
    ├── hi.cpp
    └── hw.cpp

/usr/bin/tree --noreport -P *hw .没有hw扩展名:

.
├── exp
│   └── hw
├── src
└── tmp

/usr/bin/tree --noreport -P hw* .产生:

.
├── exp
├── src
└── tmp

版本信息/usr/bin/tree --version:

tree v2.1.0 © 1996 - 2022 by Steve Baker, Thomas Moore, Francesc Rocher, Florian Sesser, Kyosuke Tokoro
tree
  • 1 个回答
  • 16 Views
Martin Hope
Alessandro
Asked: 2023-06-01 17:42:39 +0800 CST

命令“tree -J”返回无效的 Json

  • 5

我向我的机器发出命令tree -J,这是它给出的输出的一部分:

                {
                    "type": "file",
                    "name": "ca-certificates.conf"
                },
                {
                    "type": "file",
                    "name": "ca-certificates.conf.dpkg-old"
                },
                {
                    "type": "directory",
                    "name": "chatscripts"
                } {
                    "error": "error opening dir"
                },
                {
                    "type": "directory",
                    "name": "chromium",
                    "contents": [{
                        "type": "directory",
                        "name": "native-messaging-hosts"
                    }]
                }

查看那个“错误”节点:它似乎不是有效的 Json(,缺少 a)。如何避免显示此类错误?

使用v2.0.2

tree
  • 1 个回答
  • 27 Views
Martin Hope
Konrad
Asked: 2022-03-30 06:50:55 +0800 CST

创建与树一起使用的 .info 文件

  • 1

man tree1状态:

-info打印在 .info 文件中找到的文件注释。有关 .info 文件格式的更多信息,请参阅下面的 .INFO 文件。

并进一步

.INFO 文件

.info 文件类似于 .gitignore 文件,如果在扫描目录时找到 .info 文件,则会读取该文件并将其添加到 .info 信息堆栈中。每个文件都由注释(以井号 (#) 开头的行)或通配符模式组成,这些模式可能匹配相对于 .info 文件所在目录的文件。如果文件应该匹配模式,则缩进制表符遵循模式的注释用作文件注释。注释由非制表符缩进行终止。多个模式,每个模式,可以共享相同的注释。

客观的

给定以下目录结构:

tree

    .
    ├── fileA.txt
    ├── fileB.txt
    └── other_files
        └── fileC.txt

我想创建一个信息文件,使我能够获得以下输出

    .
    ├── fileA.txt      # Comments on file A read from info file
    ├── fileB.txt      # Comments on file B read from info file
    └── other_files
        └── fileC.txt

在man页面之后这应该是可能的,但我找不到如何创建这样的信息文件的示例。我已经确定了一个可能相关的讨论2,但我不清楚该.info文件的结构应该是什么,因此tree可以使用它来填充带有附加注释的输出。


1版本:tree v2.0.2 (c) 1996 - 2022,作者:Steve Baker、Thomas Moore、Francesc Rocher、Florian Sesser、Kyosuke Tokoro*

2正如评论中所讨论的,该链接与该问题无关。

tree info
  • 1 个回答
  • 106 Views
Martin Hope
Diego J. Sanchez
Asked: 2022-03-25 12:31:39 +0800 CST

如何为树上的每个目录创建一个文件?

  • 2

对于以下树结构:

    .
└── dir1
    └── dir2
        └── dir3

为每个目录创建文件(可能为空)的简单方法是什么,因此生成的树将如下所示:

.
├── dir1
│   ├── dir2
│   │   ├── dir3
│   │   │   └── README
│   │   └── README
│   └── README
└── README
touch tree
  • 2 个回答
  • 160 Views
Martin Hope
Santosh Kumar
Asked: 2019-05-29 04:34:27 +0800 CST

如何缩短树命令中的图像序列输出?

  • -1

我在一个目录中,运行tree命令会产生如下内容:

├── directory1
│   └── image_sequence
│       ├── image.0001.jpg
│       ├── image.0002.jpg
│       ├── image.0003.jpg
│       ├── image.0004.jpg
│       ├── image.0005.jpg
│       └── image.0006.jpg
│ 
└── directory2
    ├── somefile.ext
    └── someanotherfile.ext2

里面的图像序列image_sequence产生了一个我想要修剪的大列表。我想要的输出如下所示:

├── directory1
│   └── image_sequence
│       └── image.####.jpg
│ 
└── directory2
    ├── somefile.ext
    └── someanotherfile.ext2

tree可以以某种方式修改命令的输出吗?

shell tree
  • 2 个回答
  • 389 Views
Martin Hope
Craig Hicks
Asked: 2019-04-04 12:00:37 +0800 CST

如何将“iptables -S”输出转换为广度优先列表

  • 2

我正在寻找一个程序来获取输出iptables -S并将其转换为广度优先列表。

为什么?我正在使用VyOS的路由器上做一些工作,其中预先安装了几层表,因此很难追溯连接到 INPUT、FORWARD 和 OUTPUT 的所有规则。


根据@JeffSchaller 的 [request],这里是需要解析的示例输出:

$ sudo iptables -S 
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N LAN1_IN
-N MINIUPNPD
-N UBNT_FW_IN_SUSPEND_HOOK
-N UBNT_PFOR_FW_HOOK
-N UBNT_PFOR_FW_RULES
-N UBNT_VPN_IPSEC_FW_HOOK
-N UBNT_VPN_IPSEC_FW_IN_HOOK
-N VYATTA_FW_IN_HOOK
-N VYATTA_FW_LOCAL_HOOK
-N VYATTA_FW_OUT_HOOK
-N VYATTA_POST_FW_FWD_HOOK
-N VYATTA_POST_FW_IN_HOOK
-N VYATTA_POST_FW_OUT_HOOK
-N WAN_IN
-N WAN_LOCAL
-N WAN_OUT
-A INPUT -j UBNT_VPN_IPSEC_FW_HOOK
-A INPUT -j VYATTA_FW_LOCAL_HOOK
-A INPUT -j VYATTA_POST_FW_IN_HOOK
-A FORWARD -j MINIUPNPD
-A FORWARD -j UBNT_VPN_IPSEC_FW_IN_HOOK
-A FORWARD -j UBNT_PFOR_FW_HOOK
-A FORWARD -j UBNT_FW_IN_SUSPEND_HOOK
-A FORWARD -j VYATTA_FW_IN_HOOK
-A FORWARD -j VYATTA_FW_OUT_HOOK
-A FORWARD -j VYATTA_POST_FW_FWD_HOOK
-A OUTPUT -j VYATTA_POST_FW_OUT_HOOK
-A LAN1_IN -m comment --comment LAN1_IN-10 -m state --state INVALID -j LOG --log-prefix "[LAN1_IN-10-D]"
-A LAN1_IN -m comment --comment LAN1_IN-10 -m state --state INVALID -j DROP
-A LAN1_IN -p udp -m comment --comment LAN1_IN-20 -m udp --dport 53 -m set --match-set dnsaddr dst -j RETURN
-A LAN1_IN -p udp -m comment --comment LAN1_IN-30 -m set --match-set dnsaddr src -m udp --dport 53 -j RETURN
-A LAN1_IN -m comment --comment LAN1_IN-60 -m state --state NEW -j RETURN
-A LAN1_IN -m comment --comment LAN1_IN-70 -m state --state RELATED -j RETURN
-A LAN1_IN -m comment --comment LAN1_IN-80 -m state --state ESTABLISHED -j RETURN
-A LAN1_IN -m comment --comment "LAN1_IN-10000 default-action drop" -j LOG --log-prefix "[LAN1_IN-default-D]"
-A LAN1_IN -m comment --comment "LAN1_IN-10000 default-action drop" -j DROP
-A VYATTA_FW_IN_HOOK -i eth0 -j WAN_IN
-A VYATTA_FW_IN_HOOK -i eth1 -j LAN1_IN
-A VYATTA_FW_LOCAL_HOOK -i eth0 -j WAN_LOCAL
-A VYATTA_FW_OUT_HOOK -o eth0 -j WAN_OUT
-A VYATTA_POST_FW_FWD_HOOK -j ACCEPT
-A VYATTA_POST_FW_IN_HOOK -j ACCEPT
-A VYATTA_POST_FW_OUT_HOOK -j ACCEPT
-A WAN_IN -m comment --comment WAN_IN-10 -m state --state ESTABLISHED -j RETURN
-A WAN_IN -m comment --comment WAN_IN-20 -m state --state RELATED -j RETURN
-A WAN_IN -m comment --comment WAN_IN-30 -m state --state INVALID -j LOG --log-prefix "[WAN_IN-30-D]"
-A WAN_IN -m comment --comment WAN_IN-30 -m state --state INVALID -j DROP
-A WAN_IN -m comment --comment "WAN_IN-10000 default-action drop" -j DROP
-A WAN_LOCAL -m comment --comment WAN_LOCAL-10 -m state --state ESTABLISHED -j RETURN
-A WAN_LOCAL -m comment --comment WAN_LOCAL-20 -m state --state RELATED -j RETURN
-A WAN_LOCAL -m comment --comment WAN_LOCAL-30 -m state --state INVALID -j LOG --log-prefix "[WAN_LOCAL-30-D]"
-A WAN_LOCAL -m comment --comment WAN_LOCAL-30 -m state --state INVALID -j DROP
-A WAN_LOCAL -m comment --comment "WAN_LOCAL-10000 default-action drop" -j LOG --log-prefix "[WAN_LOCAL-default-D]"
-A WAN_LOCAL -m comment --comment "WAN_LOCAL-10000 default-action drop" -j DROP
-A WAN_OUT -m comment --comment WAN_OUT-10 -m state --state NEW -j RETURN
-A WAN_OUT -m comment --comment WAN_OUT-20 -m state --state RELATED -j RETURN
-A WAN_OUT -m comment --comment WAN_OUT-30 -m state --state ESTABLISHED -j RETURN
-A WAN_OUT -m comment --comment WAN_OUT-40 -m state --state INVALID -j LOG --log-prefix "[WAN_OUT-40-D]"
-A WAN_OUT -m comment --comment WAN_OUT-40 -m state --state INVALID -j DROP
-A WAN_OUT -m comment --comment "WAN_OUT-10000 default-action drop" -j LOG --log-prefix "[WAN_OUT-default-D]"
-A WAN_OUT -m comment --comment "WAN_OUT-10000 default-action drop" -j DROP


我选择@LL3 的答案是正确的,首先通过帖子。@LL3 的答案已被修改为能够读取标准输入,所以我删除了同样的补丁

<patch removed>

感谢 -master @JeffSchallerperl的(稍晚一点)完整的答案,显示了广度优先列表和单独的 graphviz输出。

iptables tree
  • 2 个回答
  • 530 Views
Martin Hope
Stonecraft
Asked: 2018-12-03 12:10:54 +0800 CST

为什么树不能完全列出 /sys/class/hwmon?我怎么能这样做?

  • 3

如果我理解正确的话,在 Linux 中,一切都是一条路径,一直延伸到每一块硬件。我正在尝试获取有关传感器结构的信息,所以我想我会使用树来映射我的 hwmon 目录中的所有内容。但是,tree 在此目录中的行为与我习惯的不同。

当我在普通目录上运行树时,我得到子目录结构而不使用 -R 或 -L 标志:

$ tree /home
/home
└── boss
    ├── clones
    ├── Desktop
    ├── Documents
    │   ├── modules.txt
    │   ├── old_docs
    │   │   └── assorted
    │   └── prepscript.txt
    ├── Downloads
    ├── Music
    ├── Pictures
    ├── Public
    ├── Templates
    └── Videos

12 directories, 2 files

但是我尝试对 HWmon 做同样的事情,即使我确实使用了 -R 标志并且即使有更深的东西,它也只会深入一层:

$ tree /sys/class/hwmon/
/sys/class/hwmon/
├── hwmon0 -> ../../devices/pci0000:40/0000:40:01.3/0000:43:00.0/hwmon/hwmon0
├── hwmon1 -> ../../devices/pci0000:00/0000:00:01.3/0000:09:00.0/hwmon/hwmon1
├── hwmon2 -> ../../devices/pci0000:40/0000:40:03.1/0000:44:00.0/hwmon/hwmon2
├── hwmon3 -> ../../devices/pci0000:00/0000:00:18.3/hwmon/hwmon3
├── hwmon4 -> ../../devices/pci0000:00/0000:00:19.3/hwmon/hwmon4
├── hwmon5 -> ../../devices/virtual/thermal/thermal_zone0/hwmon5
└── hwmon6 -> ../../devices/platform/nct6775.656/hwmon/hwmon6

7 directories, 0 files
$ tree /sys/class/hwmon/hwmon0
/sys/class/hwmon/hwmon0
├── device -> ../../../0000:43:00.0
├── fan1_input
├── name
├── power
│   ├── async
│   ├── autosuspend_delay_ms
│   ├── control
│   ├── runtime_active_kids
│   ├── runtime_active_time
│   ├── runtime_enabled
│   ├── runtime_status
│   ├── runtime_suspended_time
│   └── runtime_usage
├── pwm1
├── pwm1_enable
├── pwm1_max
├── pwm1_min
├── subsystem -> ../../../../../../class/hwmon
├── temp1_auto_point1_pwm
├── temp1_auto_point1_temp
├── temp1_auto_point1_temp_hyst
├── temp1_crit
├── temp1_crit_hyst
├── temp1_emergency
├── temp1_emergency_hyst
├── temp1_input
├── temp1_max
├── temp1_max_hyst
├── uevent
└── update_interval

3 directories, 27 files

是什么导致了这种行为差异,我可以得到所有设备的简单树吗?

sysfs tree
  • 1 个回答
  • 1430 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve