遍历指定文件夹并执行脚本
maiaimei 2024/7/15 Linux
打包指定文件夹脚本
#!/bin/bash
# 检查输入参数个数
if [ "$#" -ne 2 ]; then
echo "Usage: $0 <source_folder> <destination_file>"
exit 1
fi
# 获取输入参数
SOURCE_FOLDER=$1
DESTINATION_FILE=$2
# 检查源文件夹是否存在
if [ ! -d "$SOURCE_FOLDER" ]; then
echo "Error: Source folder does not exist."
exit 1
fi
# 压缩文件夹
tar -czf $DESTINATION_FILE -C $(dirname $SOURCE_FOLDER) $(basename $SOURCE_FOLDER)
echo "Folder '$SOURCE_FOLDER' has been packaged as '$DESTINATION_FILE'."
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
遍历指定文件夹并执行脚本
#!/bin/bash
# 指定目录
DIRECTORY='/path/to/your/directory'
# 遍历指定目录下的所有文件和文件夹
for file in "$DIRECTORY"/*
do
# 检查是否是文件
if [ -f "$file" ]; then
# 检查文件扩展名是否为.sh(如果需要其他扩展名,请相应修改)
if [[ "$file" == *.sh ]]; then
# 赋予执行权限
chmod ug+x "$file"
# 执行文件
echo "正在执行 $file"
sh "$file"
fi
fi
done
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
根据当前用户遍历指定文件夹并执行脚本
#!/bin/bash
# 获取当前用户
currentUser=$(whoami)
# 指定目录
BASE_DIRECTORY='/path/to/your/directory'
if [ "${currentUser}" = "javadm" ]; then
DIRECTORY="${BASE_DIRECTORY}/javadm"
elif [ "${currentUser}" = "appadm" ]; then
DIRECTORY="${BASE_DIRECTORY}/appadm"
else
echo "Invalid user: ${currentUser}"
exit 1
fi
if [ -d "${DIRECTORY}" ]; then
echo "Prepare to execute the script for the ${DIRECTORY} directory"
else
echo "No such file or directory"
exit 1
fi
# 遍历指定目录下的所有文件和文件夹
for file in "$DIRECTORY"/*
do
# 检查是否是文件
if [ -f "$file" ]; then
# 检查文件扩展名是否为.sh(如果需要其他扩展名,请相应修改)
if [[ "$file" == *.sh ]]; then
# 赋予执行权限
# chmod ug+x "$file"
# 执行文件
echo "正在执行 $file"
sh "$file"
fi
fi
done
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38