查询/data下有多层目录
目的
要递归遍历 /data 目录下的所有子目录,并查看每个目录的创建用户,可以使用 find 命令结合 stat 命令来实现。
一、以下是在 CentOS 上实现的示例命令:
find /data -type d -exec stat -c "%n:%U" {} \;
这个命令将递归遍历 /data 目录及其子目录,并对每个找到的目录使用 stat 命令查看其创建用户。输出格式为 目录路径:创建用户
。
可以将上述命令保存到一个脚本文件(例如 directory_info.sh)中,然后通过运行脚本来生成结果。
#!/bin/bash
output_file="/path/to/output/file.txt"
find /data -type d -exec stat -c "%n:%U" {} \; > "$output_file"
确保将 “/path/to/output/file.txt” 替换为希望保存结果的实际文件路径。然后,通过运行以下命令来执行脚本并生成结果文件:
chmod +x directory_info.sh
./directory_info.sh
执行完毕后,将在 file.txt 文件中找到递归遍历 /data 目录下的所有子目录以及其创建用户的信息。可以将该文件复制到其他机器上,以便创建相同的目录结构并设置相同的用户权限。
二、根据之前生成的文件夹和创建用户信息文件,可以使用以下脚本批量创建文件夹并更改用户:
#!/bin/bash
input_file="/path/to/input/file.txt"
while IFS=: read -r folder owner; do
\# 创建文件夹
mkdir -p "\$folder"
\#更改文件夹的所有者
chown "\$owner" "\$folder"
done < "\$input_file"
确保将 “/path/to/input/file.txt” 替换为包含之前生成的文件夹和创建用户信息的实际文件路径。
保存脚本文件(例如 folder_creation.sh),然后通过以下命令运行脚本:
chmod +x folder_creation.sh
./folder_creation.sh
脚本将读取文件中的每一行,其中每行的格式为 目录路径:创建用户,然后使用mkdir -p
命令创建相应的文件夹,并使用 chown 命令更改文件夹的所有者为指定的用户。
执行完毕后,文件夹将被批量创建,并且其所有者将被相应更改为指定的用户。
请确保以具有足够权限的用户身份运行该脚本。