我需要一些帮助.....
在我的.bashrc文件中,我有一个非常有用的功能(它可能有点粗糙和准备,有点hacky,但它有效!)它读取输入文件,并在每个上使用'tree'函数输入行来创建目录树.然后将此树打印到输出文件(以及文件夹的大小)中.
multitree()
{
while read cheese
do
pushd . > /dev/null
pushd $cheese > /dev/null
echo -e "$cheese \n\n" >> ~/Desktop/$2.txt
tree -idf . >> ~/Desktop/$2.txt
echo -e "\n\n\n" >> ~/Desktop/$2.txt
du -sh --si >> ~/Desktop/$2.txt
echo -e "\n\n\n\n\n\n\n" >> ~/Desktop/$2.txt
popd > /dev/null
done < $1
cat ~/done
}
Run Code Online (Sandbox Code Playgroud)
这可以节省时间,并输出如下所示的代码段:
./foo
./foo/bar
./foo/bar/1
./foo/bar/1/2
Run Code Online (Sandbox Code Playgroud)
等等....
然而,我需要做的第一个(也是最繁琐的)是删除所有条目,只留下最深的文件夹路径(使用上面的例子,它将简化为./foo/bar/1/2)
有没有办法在树函数之前/之后处理文件只打印最深层次?
我知道像python这样的东西可能做得更好,但我的问题是我从未使用过python我不确定工作系统会让我运行python ......他们让我们修改自己的.bashrc所以我是不要太担心!
先谢谢你们!!!!
欧文.
Win*_*ute 19
你可以用
find . -type d -links 2
Run Code Online (Sandbox Code Playgroud)
.
如果需要,替换为目录.
编辑:说明:
find
在目录中搜索与给定过滤器匹配的文件.在这种情况下,目录是.
,过滤器是-type d -links 2
.
-type d
目录过滤器
-links 2
过滤器,用于指向其名称的两个(硬)链接.实际上,这会筛选所有没有子目录的目录,因为只有那些目录有两个:父目录中的一个和.
链接本身.具有子目录的那些也在..
其子目录中具有链接.
归档时间: |
|
查看次数: |
3891 次 |
最近记录: |