- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在做我的一个项目,它使用非常有限的 linux busybox shell。
我的 shell 没有诸如 find
、awk
、grep
之类的命令,我正在尝试获取完整的文件列表在那台机器上。
到目前为止运气不好,但是运行 ls -la/*
完成了一半的工作并显示了一层深度的文件。
您是否知道如何递归运行 ls
来获取文件和文件夹的完整列表?也许您知道这样做的其他方法?
编辑#1:
我的 ls 没有 -R 选项。
ls -1 -LR /
ls: invalid option -- R
BusyBox v1.01 multi-call binary
Usage: ls [-1AacCdeilnLrSsTtuvwxXk] [filenames...]
List directory contents
Options:
-1 list files in a single column
-A do not list implied . and ..
-a do not hide entries starting with .
-C list entries by columns
-c with -l: show ctime
-d list directory entries instead of contents
-e list both full date and full time
-i list the i-node for each file
-l use a long listing format
-n list numeric UIDs and GIDs instead of names
-L list entries pointed to by symbolic links
-r sort the listing in reverse order
-S sort the listing by file size
-s list the size of each file, in blocks
-T NUM assume Tabstop every NUM columns
-t with -l: show modification time
-u with -l: show access time
-v sort the listing by version
-w NUM assume the terminal is NUM columns wide
-x list entries by lines instead of by columns
-X sort the listing by extension
最佳答案
来自 BusyBox的页面我可以看到你有 ls
的选项 -R
:
-R List subdirectories recursively
所以你可以这样写:
$ ls -R /
由于您没有 -R
选项,您可以尝试使用这样的递归 shell 函数:
myls() {
for item in "$1"/* "$1"/.*; do
[ -z "${item##*/.}" -o -z "${item##*/..}" -o -z "${item##*/\*}" ] && continue
if [ -d "$item" ]; then
echo "$item/"
myls "$item"
else
echo "$item"
fi
done
}
然后您可以不带参数地调用它以从 /
开始.
$ myls
如果你想从/home
开始:
$ myls /home
如果你想制作一个脚本:
#!/bin/sh
# copy the function here
myls "$1"
[ -z "${item##*/.}" -o -z "${item##*/..}" -o -z "${item##*/\*}" ] && continue
此行仅排除目录 .
和 ..
以及未展开的项目(如果文件夹中没有文件,shell 将模式保留为 <some_folder>/*
)。*
的文件../
。附加在末尾以改进输出,然后为该目录递归调用该函数。关于linux - 在有限的 shell 中列出文件和文件夹层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27435336/
我有一个关于复杂性的简单问题。我在 Java 中有这段代码: pairs是 HashMap包含 Integer作为键,它的频率为 Collection作为一个值。所以: pairs = new Has
对于我的应用程序,我需要在 Coq 中使用和推理有限映射。谷歌搜索我发现 FMapAVL 似乎非常适合我的需求。问题是文档很少,我还没有弄清楚我应该如何使用它。 作为一个简单的例子,考虑以下使用对列表
我有一个主表tblAssetMaster A和一个移动表tblMovement M。 我想提取所有 Assets 及其当前位置,因此需要获取每个 Assets 的最新移动条目。 字段 A: Asset
我想让我的网站内容居中,但仅限于网页的特定宽度。所以当它超过 500px 时,我希望内容被修复,无法进一步拉伸(stretch)。无论如何都要这样做,还是我最好把所有东西都修好?希望有意义的是添加一些
我正在尝试批量删除 Backbone 模型的集合,如下所示...... collection.each(function(model, i){ model.destroy(); }); 我发现当每
我想要一个软件环境,在其中我可以在具有特定资源的硬件上测试我的软件的速度。例如,当我的主机硬件是具有 12GB RAM 的 3GHz 四核 amd64 时,该程序在具有 24 Mb RAM 的 800
在 Eclipse 中,我得到了 BigInteger.valueOf(2).pow(31093) 的值,但没有得到 BigInteger.valueOf(2).pow(31094) 的值(它是空的)
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预
我想将 2 个表从本地 sql server 2000 上传到托管的 mysql。第一个表有 17 列和 680 行,其他 10 列和 8071 行。 我首先使用 xampp mysql 尝试离线,它
我在 S3 中自动生成并保存了静态 html 文件。有时文件大小达到 2mb。是否可以使用javascript来获取html文件的一部分,显示它,当用户到达页面底部时,获取下一部分等等? 最佳答案 X
我是一名优秀的程序员,十分优秀!