树命令在某些目录中不起作用

树命令在某些目录中不起作用

我正在学习虚拟环境和项目。在观看视频时,我遇到了“tree我安装并运行的命令tree”。但它不适用于我的硬盘分区以外的其他分区/

当我tree使用 〜/文件,我得到了想要的结果

$ tree -d    
.
├── Desktop
└── Fix ‘No WiFi Adapter Found’ for HP Laptops with Ubuntu 18.04 _ UbuntuHandbook_files

2 directories

但是当我在其他分区使用它时,我得到了

sandeep@sandeep-HP-Laptop-15q-ds0xxx:/media/sandeep/sandeep files$ tree -d
. [error opening dir]

0 directories

答案1

我遇到了同样的错误。以下是我解决问题的方法:

$ sudo snap remove tree
$ rm -rf $HOME/tree
$ sudo apt-get install tree
$ exec -l $SHELL  # <= restart shell

随着时间的推移,我发现折断导致了很多问题。

这只是一个例子。

答案2

总结

  1. 如果你想继续使用 snap 版本的 tree,

    • 任何一个连接可移动媒体使用捕捉
      snap connect tree:removable-media
      
    • 或者更改设备的挂载点。详情见下文
  2. 或者使用tree可以使用 APT 安装的 deb 版本。


较长的版本:

每当安装分区/可移动媒体时,目标点通常是/媒体/用户/UUID.但根据Snap 的局限性Snap 应用程序无法保证当前用户之外的目录/文件的访问权限$HOME,包括以下目录/媒体乃至/ETC。 从zyga 的 邮政

  • $HOME用户的目录必须匹配。/home/*其他目录尚不支持。特别/home/subdir/user是也不支持。

  • 目前尚不支持任何在用户未登录时无法使用主目录的安装。这包括:

    • 安装使用automount
    • ecryptfs 和类似技术仅在用户登录时解密 $HOME 目录(或分区)

请注意,此处的“不支持”并不意味着“不起作用”。有些功能可能不起作用,但某些事件序列也可能导致用户无法访问其数据。

但是,tree通过 APT 安装的可以访问这些(DEB 没有这样的限制)。因此,如果您需要tree在其他分区中工作,请tree使用 APT 安装。为此,请运行

sudo apt install tree

或者在 中挂载分区$HOME。要挂载分区,您可以使用mount命令 或 编辑/etc/fstab

  • 如果使用,mount

    • 在的任何子目录中创建一个目录$HOME,例如test~/桌面

      mkdir ~/Desktop/test
      
    • mount仅对具有特权的用户有效sudo,因此,运行

      sudo mount /path/of/partition/ ~/Desktop/test
      

      (替换/path/of/partition/为分区/设备路径,例如/dev/sda3)

这不会自动挂载该文件夹中的分区。因此,如果您反复挂载和卸载分区,则需要重新运行该命令。

  • 如果编辑/etc/fstab

    • 使用以下方式获取 UUID

      blkid /path/of/partition
      

      (替换/path/of/partition/为分区/设备路径,例如/dev/sda3)

    • 使用文本编辑器以权限/etc/fstab打开并添加以下行:sudonano

      UUID Mount_point Partition_type
      

      其中 UUID 是从上一个命令获得的,挂载点是〜/桌面/测试(假设)分区类型是分区的类型,例如 ntfs 或 ext4。

只需在 Nautilus 中轻触一下,即可自动在给定的挂载点挂载分区。

一旦完成后,您就可以使用tree特权sudo,因为两者都将使用特权挂载分区sudo,因此所有者将是root

答案3

我今天是一名学习 ubuntu 和 linux 的新手。我的老师向我展示了如何使用以下命令创建目录:

mkdir -p mydir/mysubdir2/mysubdir3

然后使用 tree 命令来概览它是否已完成。但是,我没有安装 tree 命令,因此我通过“sudo apt install tr​​ee”安装了它,但当我从我创建的目录中尝试“tree mydir”时,出现了与您相同的错误。

我玩了一下,发现我忘了最后的“/”,所以如果我写了“tree mydir/”,它就很好用了。

不确定这是否有帮助,但我希望如此!:)

答案4

sandeep@sandeep-HP-Laptop-15q-ds0xxx:/media/sandeep/sandeep files$ tree -d . [打开目录时出错]

0 个目录

我遇到了同样的问题,并使用了“sudo tree”,它显示了所有文件夹和文件,其中的一些文件夹可能需要 root 用户访问权限才能打开。请尝试一下。

相关内容