gpt4 book ai didi

bash - 如何在 Bash 中使用 for 循环遍历目录中的文件

转载 作者:行者123 更新时间:2023-12-05 03:28:35 25 4
gpt4 key购买 nike

我正在尝试使用 for 循环遍历目录中的所有文件:

#!/bin/bash

myname="bandit24"

cd /var/spool/$myname
echo "Executing and deleting all scripts in /var/spool/$myname:"

for file in /var/spool/bandit24/*; # <----- here
do
if [ "$file" != "." -a "$file" != ".." ];
then
echo "Handling $file"
owner="$(stat --format "%U" ./$file)"
if [ "${owner}" = "bandit24" ]; then
timeout -s 9 60 ./$file
fi
rm -f ./$file
fi
done

但结果我得到以下信息:

Executing and deleting all scripts in /var/spool/bandit24:
Handling /var/spool/bandit24/*
stat: cannot stat './/var/spool/bandit24/*': No such file or directory

该程序并没有尝试迭代 /var/spool/bandit24/ 目录中的文件,而是尝试迭代 /var/spool/bandit24/* 文件本身.但我想迭代 /var/spool/bandit24/ 目录中的文件。怎么做?

补充问题

cd/var/spool/$myname 是什么意思(5 行)?据我了解,它用于指定我们将在其中工作的目录,对吗?

最佳答案

for f in $(find . -maxdepth 1 -type f); do
echo "current file is $f"
done

关于bash - 如何在 Bash 中使用 for 循环遍历目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71235607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com