【发布时间】:2021-03-15 23:49:39
【问题描述】:
我有一个由许多文件夹组成的文件夹,其中一些只有文件,而另一些则有子文件夹,其中还有一些文件。 我想编写一个 shell 脚本来忽略所有包含子文件夹的文件夹以及其中包含的任何内容
示例:此目录:/tmp/orders-temp 有以下文件:
drwxr-xr-x 2 root root 4096 Dec 3 18:38 201201040230_abcd.1of3
它带有 zip 和 xml 文件
drwxr-xr-x 2 root root 4096 Dec 3 18:38 201201040230_abcd.2of3
它带有 zip 和 xml 文件
drwxr-xr-x 2 root root 4096 Dec 3 18:38 201201040230_abcd.3of3
它带有 zip 和 xml 文件
drwxr-xr-x 5 root root 4096 Dec 3 18:53 201201040230_abcd_90975
它有一些子目录
我们只希望 201201040230_abcd_90975 被忽略,因为它包含更多的子文件夹,即:
cd 201201040230_abcd_90975
ls -rlt
drwxr-xr-x 2 root root 4096 Dec 3 18:42 201201040230_abcd-01
drwxr-xr-x 2 root root 4096 Dec 3 18:42 201201040230_abcd-02
drwxr-xr-x 2 root root 4096 Dec 3 18:42 201201040230_abcd-03
我们需要忽略所有这些。
即输出应该是:
drwxr-xr-x 2 root root 4096 Dec 3 18:38 201201040230_abcd.1of3
drwxr-xr-x 2 root root 4096 Dec 3 18:38 201201040230_abcd.2of3
drwxr-xr-x 2 root root 4096 Dec 3 18:38 201201040230_abcd.3of3
此外,我们下次可以为文件夹取一个不同的名称,因此自动化应该是动态的,无需硬编码。
感谢任何帮助!
【问题讨论】:
-
打印不带参数输入
find的数据结构。 -
请edit您的问题并解释您想要实现的目标。 “忽略所有包含子文件夹的文件夹以及其中包含的任何内容”是什么意思?你想对所有其他文件夹做些什么,即那些既不包含子文件夹也不包含文件的文件夹?