Bash:列出所有只包含两个子文件夹的目录:folder1和folder2?
正如在标题中一样,有人可以只使用Bash来帮助回答这个问题吗Bash:列出所有只包含两个子文件夹的目录:folder1和folder2?,bash,Bash,正如在标题中一样,有人可以只使用Bash来帮助回答这个问题吗 我花了一些时间弄不明白。谢谢。下面应该列出只包含两个文件夹的目录folder1和folder2 for i in $(find . -type d); do count=$(find $i -mindepth 1 -maxdepth 1 -type d | wc -l); [ $count -eq 2 ] && [ -d $i/folder1 ] && [ -d $i/folder2 ] &&a
我花了一些时间弄不明白。谢谢。下面应该列出只包含两个文件夹的目录
folder1
和folder2
for i in $(find . -type d); do count=$(find $i -mindepth 1 -maxdepth 1 -type d | wc -l); [ $count -eq 2 ] && [ -d $i/folder1 ] && [ -d $i/folder2 ] && echo $i ; done
如果文件夹中有其他文件,上面的内容就不重要了。如果您只想确保目录folder1
和folder2
,请说:
for i in $(find . -type d); do count=$(find $i -mindepth 1 -maxdepth 1 | wc -l); [ $count -eq 2 ] && [ -d $i/folder1 ] && [ -d $i/folder2 ] && echo $i ; done
[请注意,上述内容可能不适用于目录名中的空格。]以下应列出仅包含两个文件夹的目录
folder1
和folder2
for i in $(find . -type d); do count=$(find $i -mindepth 1 -maxdepth 1 -type d | wc -l); [ $count -eq 2 ] && [ -d $i/folder1 ] && [ -d $i/folder2 ] && echo $i ; done
如果文件夹中有其他文件,上面的内容就不重要了。如果您只想确保目录folder1
和folder2
,请说:
for i in $(find . -type d); do count=$(find $i -mindepth 1 -maxdepth 1 | wc -l); [ $count -eq 2 ] && [ -d $i/folder1 ] && [ -d $i/folder2 ] && echo $i ; done
[请注意,上述内容可能不适用于目录名中的空格。]这将列出这些目录,而不会在搜索中出现冗余
#!/bin/bash
function check {
local DIR SUBFOLDERS=()
for DIR; do
readarray -t SUBFOLDERS < <(find "$DIR" -maxdepth 1 -mindepth 1 -type d)
if [[ ${#SUBFOLDERS[@]} -gt 0 ]]; then
[[ ${#SUBFOLDERS[@]} -eq 2 ]] && echo "$DIR"
check "${SUBFOLDERS[@]}"
fi
done
}
check "$@"
示例:
bash script.sh .
bash script.sh "$HOME"
bash script.sh /var /usr
这将列出这些目录,而不会在搜索中出现冗余
#!/bin/bash
function check {
local DIR SUBFOLDERS=()
for DIR; do
readarray -t SUBFOLDERS < <(find "$DIR" -maxdepth 1 -mindepth 1 -type d)
if [[ ${#SUBFOLDERS[@]} -gt 0 ]]; then
[[ ${#SUBFOLDERS[@]} -eq 2 ]] && echo "$DIR"
check "${SUBFOLDERS[@]}"
fi
done
}
check "$@"
示例:
bash script.sh .
bash script.sh "$HOME"
bash script.sh /var /usr
问题不清楚;你能换一种说法吗?子文件夹的名称是否正是这样,或者你正在寻找正好包含两个子文件夹的目录?目录中是否允许任何文件?是否允许使用诸如grep、sed、awk、python之类的工具,这些工具通常与bash脚本一起使用。这是家庭作业吗?抱歉搞混了。是,列出仅包含两个文件夹的文件夹,它们是folder1和folder2。感谢的问题还不清楚;你能换一种说法吗?子文件夹的名称是否正是这样,或者你正在寻找正好包含两个子文件夹的目录?目录中是否允许任何文件?是否允许使用诸如grep、sed、awk、python之类的工具,这些工具通常与bash脚本一起使用。这是家庭作业吗?抱歉搞混了。是,列出仅包含两个文件夹的文件夹,它们是folder1和folder2。谢谢