我正在尝试遍历当前目录下的子目录。我想在每个子目录中访问和处理某些文件。有人可以帮助我如何访问子目录中的文件吗?
"
for dir in /home/ayushi/perfios/fraud_stmt/*;
do echo $dir;
done;
"上面的脚本将回显所有子目录。但我不想回显,而是想进入目录并访问其中存在的文件。
发布于 2018-09-18 16:02:21
find /home/ayushi/perfios/fraud_stmt/ -type f | while read fname; do
: do something on $fname here
done这将从指定目录向下搜索所有文件(即不是实际目录)。请注意,您应该用双引号将"$fname“括起来,以防它包含空格或其他”奇数“字符。
发布于 2018-09-18 16:53:36
使用递归函数的示例
process_file() {
echo "$1"
}
rec_traverse() {
local file_or_dir
for file_or_dir in "$1"/*; do
[[ -d $file_or_dir ]] && rec_traverse "$file_or_dir"
[[ -f $file_or_dir ]] && process_file "$file_or_dir"
done
}
rec_traverse /home/ayushi/perfios/fraud_stmt可以将
process_file更改为在file."$1"/*上执行某些操作可以更改为"$1"/* "$1"/.*以匹配隐藏目录,但在这种情况下,必须过滤特殊的硬链接目录.和..以避免无限循环。https://stackoverflow.com/questions/52381682
复制相似问题